Function at 0x1002cfd0
Capabilities:
Encrypt data using camellia
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x64
mov edx, dword [esp + 0x68]
xorps xmm0, xmm0
mov eax, dword [esp + 0x70]
push ebx
push ebp
mov dword [edx + 4], eax
push esi
mov esi, dword [esp + 0x78]
push edi
xor edi, edi
movlpd qword [esp + 0x30], xmm0
movlpd qword [esp + 0x6c], xmm0
movzx ebx, byte [esi]
movzx eax, byte [esi + 1]
movzx ecx, byte [esi + 4]
movzx ebp, byte [esi + 8]
shl ebx, 8
or ebx, eax
shl ecx, 8
movzx eax, byte [esi + 2]
shl ebx, 8
or ebx, eax
shl ebp, 8
movzx eax, byte [esi + 3]
shl ebx, 8
or ebx, eax
movlpd qword [esp + 0x64], xmm0
movzx eax, byte [esi + 5]
or ecx, eax
movlpd qword [esp + 0x5c], xmm0
movzx eax, byte [esi + 6]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x3c], ebx
movzx eax, byte [esi + 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 9]
or ebp, eax
or edi, ecx
movzx eax, byte [esi + 0xa]
movzx ecx, byte [esi + 0xc]
shl ebp, 8
or ebp, eax
shl ecx, 8
movzx eax, byte [esi + 0xb]
shl ebp, 8
or ebp, eax
mov dword [esp + 0x2c], edi
movzx eax, byte [esi + 0xd]
or ecx, eax
mov dword [esp + 0x38], ebp
movzx eax, byte [esi + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0xf]
shl ecx, 8
or ecx, eax
xor eax, eax
or eax, ecx
cmp dword [esp + 0x80], 0x10
mov dword [esp + 0x40], eax
jne 0x1002d0c9
mov eax, dword [esp + 0x64]
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x5c]
mov dword [edx], 0x12
mov dword [esp + 0x50], ebp
mov dword [esp + 0x4c], eax
jmp 0x1002d17d
movzx ebp, byte [esi + 0x10]
movzx eax, byte [esi + 0x11]
movzx ecx, byte [esi + 0x14]
shl ebp, 8
or ebp, eax
shl ecx, 8
movzx eax, byte [esi + 0x12]
shl ebp, 8
or ebp, eax
movzx eax, byte [esi + 0x13]
shl ebp, 8
or ebp, eax
movzx eax, byte [esi + 0x15]
or ecx, eax
mov dword [esp + 0x50], ebp
movzx eax, byte [esi + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0x17]
shl ecx, 8
or ecx, eax
xor eax, eax
or eax, ecx
cmp dword [esp + 0x80], 0x18
mov dword [esp + 0x54], eax
jne 0x1002d129
not eax
mov dword [esp + 0x4c], eax
mov eax, ebp
not eax
jmp 0x1002d173
movzx ecx, byte [esi + 0x18]
movzx eax, byte [esi + 0x19]
movzx edi, byte [esi + 0x1c]
shl ecx, 8
or ecx, eax
shl edi, 8
movzx eax, byte [esi + 0x1a]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0x1d]
or edi, eax
movzx eax, byte [esi + 0x1e]
shl edi, 8
or edi, eax
movzx eax, byte [esi + 0x1f]
shl edi, 8
or edi, eax
xor eax, eax
mov dword [esp + 0x4c], edi
or eax, ecx
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x48], eax
mov dword [edx], 0x18
xor edi, dword [esp + 0x54]
mov esi, ebx
xor esi, ebp
mov eax, esi
xor eax, 0x7f
and eax, 0xff
mov cl, byte [eax + 0x10058c00]
mov eax, esi
shr eax, 8
xor eax, 0x66
mov byte [esp + 0x16], cl
and eax, 0xff
mov dl, byte [eax + 0x10058b00]
mov al, dl
mov byte [esp + 0x17], dl
xor al, cl
mov ecx, edi
mov byte [esp + 0x15], al
mov eax, esi
shrd ecx, eax, 8
shr eax, 8
xor ecx, 0xffffff90
and ecx, 0xff
mov al, byte [ecx + 0x10058c00]
mov ecx, edi
mov byte [esp + 0x10], al
mov eax, esi
shrd ecx, eax, 0x10
shr eax, 0x10
xor ecx, 0xffffffcc
and ecx, 0xff
mov al, byte [ecx + 0x10058b00]
mov ecx, edi
mov byte [esp + 0x12], al
mov eax, esi
shr eax, 0x18
xor eax, 0xa0
mov al, byte [eax + 0x10058900]
mov byte [esp + 0x11], al
mov eax, edi
xor eax, 0xffffff8b
and eax, 0xff
mov dh, byte [eax + 0x10058900]
mov eax, esi
shr eax, 0x10
xor eax, 0xffffff9e
mov byte [esp + 0x14], dh
and eax, 0xff
mov bh, byte [eax + 0x10058a00]
mov eax, esi
shrd ecx, eax, 0x18
mov bl, bh
xor bl, byte [esp + 0x16]
xor ecx, 0x3b
shr eax, 0x18
and ecx, 0xff
mov al, dh
xor al, byte [esp + 0x11]
xor al, byte [esp + 0x12]
xor al, byte [esp + 0x10]
xor al, byte [esp + 0x15]
mov cl, byte [ecx + 0x10058a00]
mov ch, bh
movzx eax, al
xor ch, dl
cdq
mov byte [esp + 0x13], cl
mov ebp, eax
xor cl, bl
mov eax, edx
xor cl, byte [esp + 0x14]
xor cl, byte [esp + 0x11]
xor cl, byte [esp + 0x10]
shld eax, ebp, 8
mov dword [esp + 0x28], eax
movzx eax, cl
cdq
shl ebp, 8
or ebp, eax
mov eax, dword [esp + 0x28]
or eax, edx
shld eax, ebp, 8
mov cl, byte [esp + 0x14]
mov dword [esp + 0x28], eax
xor bh, cl
shl ebp, 8
mov al, ch
xor al, byte [esp + 0x13]
xor al, cl
xor bh, byte [esp + 0x11]
xor al, byte [esp + 0x11]
xor al, byte [esp + 0x12]
movzx eax, al
cdq
or ebp, eax
xor bh, byte [esp + 0x12]
mov eax, dword [esp + 0x28]
or eax, edx
xor bh, byte [esp + 0x10]
shld eax, ebp, 8
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x13]
xor al, bl
shl ebp, 8
xor al, byte [esp + 0x12]
xor al, byte [esp + 0x10]
xor al, byte [esp + 0x17]
movzx eax, al
cdq
or ebp, eax
mov bl, byte [esp + 0x13]
mov eax, dword [esp + 0x28]
xor ch, bl
or eax, edx
xor ch, cl
shld eax, ebp, 8
xor ch, byte [esp + 0x10]
mov dword [esp + 0x28], eax
shl ebp, 8
movzx eax, bh
cdq
or ebp, eax
mov eax, dword [esp + 0x28]
or eax, edx
shld eax, ebp, 8
mov dword [esp + 0x28], eax
shl ebp, 8
movzx eax, ch
cdq
or ebp, eax
mov eax, dword [esp + 0x28]
or eax, edx
shld eax, ebp, 8
mov dword [esp + 0x28], eax
mov al, bl
xor bl, byte [esp + 0x11]
xor al, cl
xor al, byte [esp + 0x12]
xor al, byte [esp + 0x15]
xor bl, byte [esp + 0x12]
xor bl, byte [esp + 0x10]
xor bl, byte [esp + 0x16]
movzx eax, al
shl ebp, 8
cdq
or ebp, eax
mov eax, dword [esp + 0x28]
or eax, edx
shld eax, ebp, 8
mov dword [esp + 0x28], eax
movzx eax, bl
mov ebx, dword [esp + 0x28]
shl ebp, 8
cdq
or ebp, eax
or ebx, edx
xor ebp, dword [esp + 0x40]
xor ebx, dword [esp + 0x38]
xor ebp, dword [esp + 0x4c]
xor ebx, dword [esp + 0x48]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x28], ebx
mov ecx, ebp
mov eax, ebx
shrd ecx, eax, 8
shr eax, 8
xor ecx, 0x73
and ecx, 0xff
mov eax, ebx
xor eax, 0x58
and eax, 0xff
mov dl, byte [ecx + 0x10058c00]
mov ecx, ebp
mov al, byte [eax + 0x10058c00]
mov byte [esp + 0x14], al
xor al, dl
mov byte [esp + 0x10], al
mov eax, ebx
shrd ecx, eax, 0x10
shr eax, 0x10
xor ecx, 0xffffffaa
and ecx, 0xff
mov al, byte [ecx + 0x10058b00]
mov ecx, ebp
mov byte [esp + 0x12], al
mov eax, ebx
shr eax, 8
xor eax, 0xffffffe8
and eax, 0xff
mov al, byte [eax + 0x10058b00]
mov byte [esp + 0x13], al
mov eax, ebx
shr eax, 0x18
xor eax, 0xb6
mov al, byte [eax + 0x10058900]
mov byte [esp + 0x11], al
mov eax, ebp
xor eax, 0xffffffb2
and eax, 0xff
mov dh, byte [eax + 0x10058900]
mov eax, ebx
shr eax, 0x10
xor eax, 0x7a
mov byte [esp + 0x16], dh
and eax, 0xff
mov bl, byte [eax + 0x10058a00]
mov eax, dword [esp + 0x28]
mov bh, bl
shrd ecx, eax, 0x18
xor bh, dl
shr eax, 0x18
xor ecx, 0x4c
and ecx, 0xff
mov al, byte [ecx + 0x10058a00]
mov ch, al
mov byte [esp + 0x15], al
mov al, dh
xor ch, bh
xor al, byte [esp + 0x11]
xor al, byte [esp + 0x13]
xor al, byte [esp + 0x12]
xor al, byte [esp + 0x10]
xor ch, byte [esp + 0x14]
movzx eax, al
mov cl, ch
xor cl, byte [esp + 0x16]
xor cl, byte [esp + 0x11]
cdq
mov ebp, eax
mov eax, edx
shld eax, ebp, 8
mov dword [esp + 0x24], eax
shl ebp, 8
movzx eax, cl
cdq
or ebp, eax
mov eax, dword [esp + 0x24]
or eax, edx
shld eax, ebp, 8
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x15]
shl ebp, 8
xor al, bl
mov cl, byte [esp + 0x16]
xor al, cl
xor ch, byte [esp + 0x13]
xor al, byte [esp + 0x11]
xor al, byte [esp + 0x13]
xor al, byte [esp + 0x12]
movzx eax, al
cdq
or ebp, eax
xor ch, byte [esp + 0x12]
mov eax, dword [esp + 0x24]
or eax, edx
mov bl, byte [esp + 0x15]
shld eax, ebp, 8
mov dword [esp + 0x24], eax
shl ebp, 8
movzx eax, ch
cdq
or ebp, eax
mov eax, dword [esp + 0x24]
or eax, edx
shld eax, ebp, 8
mov dword [esp + 0x24], eax
mov al, bh
xor al, cl
shl ebp, 8
xor al, byte [esp + 0x11]
xor al, byte [esp + 0x12]
movzx eax, al
cdq
or ebp, eax
mov eax, dword [esp + 0x24]
or eax, edx
shld eax, ebp, 8
mov dword [esp + 0x24], eax
mov al, bl
xor al, bh
shl ebp, 8
xor al, cl
xor al, byte [esp + 0x13]
movzx eax, al
cdq
or ebp, eax
mov eax, dword [esp + 0x24]
or eax, edx
shld eax, ebp, 8
mov dword [esp + 0x24], eax
mov al, bl
xor bl, byte [esp + 0x11]
xor al, cl
xor al, byte [esp + 0x13]
xor al, byte [esp + 0x12]
xor al, byte [esp + 0x14]
xor bl, byte [esp + 0x12]
xor bl, byte [esp + 0x10]
movzx eax, al
cdq
shl ebp, 8
or ebp, eax
mov eax, dword [esp + 0x24]
or eax, edx
shld eax, ebp, 8
mov dword [esp + 0x24], eax
shl ebp, 8
movzx eax, bl
cdq
or dword [esp + 0x24], edx
or ebp, eax
xor ebp, edi
mov edi, dword [esp + 0x24]
xor ebp, dword [esp + 0x2c]
xor edi, esi
xor edi, dword [esp + 0x3c]
mov ecx, ebp
mov eax, edi
shrd ecx, eax, 8
shr eax, 8
xor ecx, 0xffffff82
and ecx, 0xff
mov eax, edi
mov bl, byte [ecx + 0x10058c00]
shr eax, 8
mov ecx, ebp
xor eax, 0x37
and eax, 0xff
mov dl, byte [eax + 0x10058b00]
mov eax, edi
shrd ecx, eax, 0x10
mov dh, dl
shr eax, 0x10
xor ecx, 0x4f
mov eax, edi
and ecx, 0xff
xor eax, 0x2f
xor dh, bl
and eax, 0xff
mov byte [esp + 0x10], dh
mov cl, byte [ecx + 0x10058b00]
mov byte [esp + 0x12], cl
mov al, byte [eax + 0x10058c00]
mov bh, al
mov byte [esp + 0x16], al
mov eax, edi
xor bh, cl
shr eax, 0x18
xor bh, dh
xor eax, 0xc6
mov ecx, ebp
mov al, byte [eax + 0x10058900]
mov byte [esp + 0x11], al
mov eax, ebp
xor eax, 0xffffffbe
and eax, 0xff
mov dh, byte [eax + 0x10058900]
mov eax, edi
shr eax, 0x10
xor eax, 0xffffffef
mov byte [esp + 0x13], dh
and eax, 0xff
mov al, byte [eax + 0x10058a00]
mov byte [esp + 0x17], al
mov eax, edi
shrd ecx, eax, 0x18
shr eax, 0x18
xor ecx, 0xffffffe9
mov ah, byte [esp + 0x12]
and ecx, 0xff
mov al, ah
xor ah, bl
xor al, dl
mov byte [esp + 0x12], ah
mov byte [esp + 0x15], al
mov cl, byte [ecx + 0x10058a00]
mov ch, byte [esp + 0x17]
mov al, cl
xor al, ch
mov byte [esp + 0x14], cl
mov cl, byte [esp + 0x13]
xor al, dh
xor al, byte [esp + 0x11]
xor al, byte [esp + 0x16]
xor cl, byte [esp + 0x11]
xor al, bl
movzx eax, al
xor cl, bh
mov bl, byte [esp + 0x14]
cdq
mov esi, eax
mov dword [esp + 0x18], edx
movzx eax, cl
mov cl, byte [esp + 0x15]
cdq
shld edx, eax, 8
shl eax, 8
or esi, eax
mov eax, dword [esp + 0x18]
or eax, edx
shld eax, esi, 8
mov dword [esp + 0x18], eax
mov al, cl
shl esi, 8
xor al, bl
xor al, ch
xor cl, bl
xor al, byte [esp + 0x13]
xor al, byte [esp + 0x11]
movzx eax, al
cdq
or esi, eax
mov eax, dword [esp + 0x18]
or eax, edx
shld eax, esi, 8
mov dword [esp + 0x18], eax
mov al, bl
xor al, ch
shl esi, 8
xor al, bh
mov bh, byte [esp + 0x13]
movzx eax, al
xor cl, bh
cdq
or esi, eax
xor cl, byte [esp + 0x16]
mov eax, dword [esp + 0x18]
or eax, edx
shld eax, esi, 8
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x12]
xor al, ch
shl esi, 8
xor al, bh
xor al, byte [esp + 0x11]
movzx eax, al
cdq
or esi, eax
mov eax, dword [esp + 0x18]
or eax, edx
shld eax, esi, 8
mov dword [esp + 0x18], eax
mov al, bl
xor al, ch
shl esi, 8
xor al, bh
xor al, byte [esp + 0x10]
movzx eax, al
cdq
or esi, eax
mov eax, dword [esp + 0x18]
or eax, edx
shld eax, esi, 8
mov dword [esp + 0x18], eax
shl esi, 8
movzx eax, cl
cdq
or esi, eax
mov eax, dword [esp + 0x18]
or eax, edx
shld eax, esi, 8
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x12]
xor al, bl
shl esi, 8
xor al, byte [esp + 0x11]
xor al, byte [esp + 0x16]
mov ebx, dword [esp + 0x18]
movzx eax, al
cdq
or esi, eax
or ebx, edx
xor ebx, dword [esp + 0x28]
xor ebx, dword [esp + 0x38]
xor esi, dword [esp + 0x58]
mov eax, ebx
xor esi, dword [esp + 0x40]
shr eax, 8
xor eax, 0x53
mov dword [esp + 0x20], esi
and eax, 0xff
mov dword [esp + 0x18], ebx
mov cl, byte [eax + 0x10058b00]
mov eax, ebx
mov byte [esp + 0x16], cl
xor eax, 0xffffffa5
and eax, 0xff
mov dl, byte [eax + 0x10058c00]
mov eax, dword [esp + 0x18]
mov bh, dl
xor bh, cl
mov ecx, esi
shrd ecx, eax, 8
mov byte [esp + 0x14], bh
shr eax, 8
xor ecx, 0x6f
mov eax, dword [esp + 0x18]
and ecx, 0xff
mov dh, byte [ecx + 0x10058c00]
mov ecx, esi
shrd ecx, eax, 0x10
mov byte [esp + 0x15], dh
shr eax, 0x10
xor ecx, 0xffffffd3
and ecx, 0xff
mov al, byte [ecx + 0x10058b00]
mov ecx, esi
mov bl, al
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x18]
xor bl, dh
shr eax, 0x18
xor bl, bh
xor eax, 0x54
xor dh, dl
mov byte [esp + 0x12], dh
mov al, byte [eax + 0x10058900]
mov byte [esp + 0x11], al
mov eax, esi
xor eax, 0x1c
and eax, 0xff
mov bh, byte [eax + 0x10058900]
mov eax, dword [esp + 0x18]
shrd ecx, eax, 0x18
shr eax, 0x18
xor ecx, 0xfffffff1
mov eax, dword [esp + 0x18]
and ecx, 0xff
shr eax, 0x10
not eax
and eax, 0xff
mov cl, byte [ecx + 0x10058a00]
mov byte [esp + 0x17], cl
mov ch, byte [eax + 0x10058a00]
mov al, ch
xor al, cl
mov cl, bh
xor cl, byte [esp + 0x11]
xor al, dh
xor al, bh
xor cl, bl
xor al, byte [esp + 0x11]
movzx eax, al
cdq
mov esi, eax
mov dword [esp + 0x24], edx
movzx eax, cl
mov cl, byte [esp + 0x17]
cdq
shld edx, eax, 8
shl eax, 8
or esi, eax
mov eax, dword [esp + 0x24]
or eax, edx
shld eax, esi, 8
mov dword [esp + 0x24], eax
mov al, ch
xor al, cl
shl esi, 8
xor al, bh
xor al, byte [esp + 0x11]
xor al, byte [esp + 0x13]
xor al, byte [esp + 0x16]
movzx eax, al
cdq
or esi, eax
mov eax, dword [esp + 0x24]
or eax, edx
shld eax, esi, 8
mov dword [esp + 0x24], eax
mov al, ch
xor al, cl
shl esi, 8
xor al, bl
movzx eax, al
cdq
or esi, eax
mov eax, dword [esp + 0x24]
or eax, edx
shld eax, esi, 8
mov dword [esp + 0x24], eax
mov al, ch
xor al, bh
shl esi, 8
xor al, byte [esp + 0x11]
xor ch, cl
xor al, byte [esp + 0x13]
xor ch, bh
xor al, byte [esp + 0x15]
xor ch, byte [esp + 0x15]
movzx eax, al
xor ch, byte [esp + 0x16]
cdq
or esi, eax
mov eax, dword [esp + 0x24]
or eax, edx
shld eax, esi, 8
mov dword [esp + 0x24], eax
shl esi, 8
movzx eax, ch
cdq
or esi, eax
mov eax, dword [esp + 0x24]
or eax, edx
shld eax, esi, 8
mov dword [esp + 0x24], eax
mov al, cl
xor cl, byte [esp + 0x12]
xor al, bh
xor al, byte [esp + 0x13]
xor al, byte [esp + 0x14]
xor cl, byte [esp + 0x11]
xor cl, byte [esp + 0x13]
movzx eax, al
cdq
shl esi, 8
or esi, eax
mov eax, dword [esp + 0x24]
or eax, edx
shld eax, esi, 8
mov dword [esp + 0x24], eax
shl esi, 8
movzx eax, cl
cdq
or esi, eax
mov eax, dword [esp + 0x24]
or eax, edx
xor esi, ebp
xor eax, edi
mov dword [esp + 0x58], esi
cmp dword [esp + 0x80], 0x10
mov dword [esp + 0x24], eax
jle 0x1002dd9a
mov edi, esi
mov esi, eax
xor esi, dword [esp + 0x50]
xor edi, dword [esp + 0x54]
mov eax, esi
mov ecx, edi
shrd ecx, eax, 0x10
shr eax, 0x10
xor ecx, 0x68
and ecx, 0xff
mov eax, esi
shr eax, 8
xor eax, 0x27
and eax, 0xff
mov cl, byte [ecx + 0x10058b00]
mov byte [esp + 0x15], cl
mov al, byte [eax + 0x10058b00]
mov byte [esp + 0x10], al
xor al, cl
mov byte [esp + 0x16], al
mov ecx, edi
mov eax, esi
shrd ecx, eax, 8
shr eax, 8
xor ecx, 0x2d
and ecx, 0xff
mov al, byte [ecx + 0x10058c00]
mov ecx, edi
mov byte [esp + 0x11], al
mov eax, esi
xor eax, 0xfffffffa
and eax, 0xff
mov dh, byte [eax + 0x10058c00]
mov eax, esi
shr eax, 0x18
xor eax, 0x10
mov byte [esp + 0x13], dh
mov dl, byte [eax + 0x10058900]
mov eax, edi
xor eax, 0x1d
mov byte [esp + 0x12], dl
and eax, 0xff
mov al, byte [eax + 0x10058900]
mov byte [esp + 0x17], al
mov eax, esi
shr eax, 0x10
xor eax, 0xffffffe5
and eax, 0xff
mov bh, byte [eax + 0x10058a00]
mov eax, esi
shrd ecx, eax, 0x18
xor ecx, 0xffffffde
shr eax, 0x18
and ecx, 0xff
mov cl, byte [ecx + 0x10058a00]
mov ch, byte [esp + 0x17]
mov bl, cl
mov al, ch
mov byte [esp + 0x14], cl
xor al, dl
xor cl, bh
xor al, dh
xor cl, ch
xor al, byte [esp + 0x11]
xor bl, bh
xor al, byte [esp + 0x16]
xor cl, byte [esp + 0x12]
xor cl, byte [esp + 0x13]
xor cl, byte [esp + 0x11]
xor bl, byte [esp + 0x16]
movzx eax, al
cdq
mov ebp, eax
mov eax, edx
shld eax, ebp, 8
mov dword [esp + 0x28], eax
movzx eax, cl
cdq
shl ebp, 8
or ebp, eax
mov eax, dword [esp + 0x28]
or eax, edx
mov cl, byte [esp + 0x14]
shld eax, ebp, 8
mov dword [esp + 0x28], eax
mov al, bl
xor al, ch
xor bl, byte [esp + 0x13]
xor al, byte [esp + 0x12]
movzx eax, al
cdq
xor bl, byte [esp + 0x11]
shl ebp, 8
or ebp, eax
mov eax, dword [esp + 0x28]
or eax, edx
shld eax, ebp, 8
mov dword [esp + 0x28], eax
shl ebp, 8
movzx eax, bl
cdq
or ebp, eax
mov eax, dword [esp + 0x28]
or eax, edx
shld eax, ebp, 8
mov dword [esp + 0x28], eax
mov al, bh
xor al, ch
shl ebp, 8
xor al, byte [esp + 0x12]
xor al, byte [esp + 0x11]
xor al, byte [esp + 0x15]
movzx eax, al
cdq
or ebp, eax
mov eax, dword [esp + 0x28]
or eax, edx
shld eax, ebp, 8
mov dword [esp + 0x28], eax
mov al, cl
xor al, bh
shl ebp, 8
xor al, ch
xor al, byte [esp + 0x11]
xor al, byte [esp + 0x10]
movzx eax, al
cdq
or ebp, eax
mov eax, dword [esp + 0x28]
or eax, edx
shld eax, ebp, 8
mov dword [esp + 0x28], eax
mov al, cl
xor cl, byte [esp + 0x12]
xor al, ch
xor al, byte [esp + 0x13]
xor al, byte [esp + 0x16]
xor cl, byte [esp + 0x13]
xor cl, byte [esp + 0x11]
xor cl, byte [esp + 0x15]
movzx eax, al
shl ebp, 8
cdq
or ebp, eax
mov eax, dword [esp + 0x28]
or eax, edx
shld eax, ebp, 8
mov dword [esp + 0x28], eax
shl ebp, 8
movzx eax, cl
cdq
or dword [esp + 0x28], edx
or ebp, eax
mov dword [esp + 0x30], ebp
mov ebx, ebp
mov ebp, dword [esp + 0x28]
xor ebx, dword [esp + 0x20]
xor ebp, dword [esp + 0x18]
xor ebx, dword [esp + 0x4c]
xor ebp, dword [esp + 0x48]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x28], ebp
mov eax, ebp
mov ecx, ebx
shr eax, 8
xor eax, 0xffffff88
and eax, 0xff
mov al, byte [eax + 0x10058b00]
mov byte [esp + 0x16], al
mov eax, ebp
xor eax, 0xffffffc2
and eax, 0xff
mov al, byte [eax + 0x10058c00]
mov byte [esp + 0x10], al
mov eax, ebp
shrd ecx, eax, 8
shr eax, 8
xor ecx, 0xffffffc1
and ecx, 0xff
mov al, byte [ecx + 0x10058c00]
mov ecx, ebx
mov byte [esp + 0x11], al
mov eax, ebp
shrd ecx, eax, 0x10
shr eax, 0x10
xor ecx, 0xffffffe6
mov eax, ebp
and ecx, 0xff
shr eax, 0x18
xor eax, 0xb0
mov dh, byte [ecx + 0x10058b00]
mov ecx, dword [esp + 0x30]
mov dl, byte [eax + 0x10058900]
mov eax, ebx
xor eax, 0xfffffffd
mov byte [esp + 0x13], dl
and eax, 0xff
mov byte [esp + 0x12], dh
mov bh, byte [eax + 0x10058900]
mov eax, ebp
shr eax, 0x10
xor eax, 0x56
and eax, 0xff
mov bl, byte [eax + 0x10058a00]
mov eax, ebp
shrd ecx, eax, 0x18
shr eax, 0x18
xor ecx, 0xffffffb3
and ecx, 0xff
mov al, bh
xor al, dl
xor al, dh
xor al, byte [esp + 0x11]
xor al, byte [esp + 0x10]
xor al, byte [esp + 0x16]
mov cl, byte [ecx + 0x10058a00]
movzx eax, al
mov ch, cl
cdq
xor ch, bl
xor ch, byte [esp + 0x16]
mov ebp, edx
shld ebp, eax, 8
mov byte [esp + 0x17], cl
xor cl, bl
shl eax, 8
xor cl, bh
xor cl, byte [esp + 0x13]
xor cl, byte [esp + 0x11]
xor cl, byte [esp + 0x10]
mov dword [esp + 0x1c], eax
movzx eax, cl
cdq
or dword [esp + 0x1c], eax
or ebp, edx
mov eax, dword [esp + 0x1c]
shld ebp, eax, 8
shl eax, 8
mov dword [esp + 0x1c], eax
mov al, ch
xor al, bh
xor al, byte [esp + 0x13]
xor al, byte [esp + 0x12]
movzx eax, al
xor bl, bh
cdq
or dword [esp + 0x1c], eax
or ebp, edx
mov eax, dword [esp + 0x1c]
shld ebp, eax, 8
xor bl, byte [esp + 0x13]
shl eax, 8
mov dword [esp + 0x1c], eax
mov al, ch
xor al, byte [esp + 0x12]
xor ch, bh
xor al, byte [esp + 0x11]
xor al, byte [esp + 0x10]
xor bl, byte [esp + 0x12]
movzx eax, al
cdq
or dword [esp + 0x1c], eax
or ebp, edx
mov eax, dword [esp + 0x1c]
xor bl, byte [esp + 0x11]
shld ebp, eax, 8
xor ch, byte [esp + 0x11]
shl eax, 8
mov dword [esp + 0x1c], eax
movzx eax, bl
cdq
or dword [esp + 0x1c], eax
or ebp, edx
mov eax, dword [esp + 0x1c]
shld ebp, eax, 8
shl eax, 8
mov dword [esp + 0x1c], eax
movzx eax, ch
mov ecx, dword [esp + 0x1c]
cdq
or ecx, eax
or ebp, edx
shld ebp, ecx, 8
shl ecx, 8
mov dword [esp + 0x1c], ecx
mov cl, byte [esp + 0x17]
mov al, cl
xor cl, byte [esp + 0x13]
xor cl, byte [esp + 0x12]
xor al, bh
xor al, byte [esp + 0x12]
xor al, byte [esp + 0x10]
xor al, byte [esp + 0x16]
xor cl, byte [esp + 0x11]
xor cl, byte [esp + 0x10]
mov ebx, dword [esp + 0x28]
movzx eax, al
cdq
or dword [esp + 0x1c], eax
or ebp, edx
mov eax, dword [esp + 0x1c]
shld ebp, eax, 8
shl eax, 8
mov dword [esp + 0x1c], eax
movzx eax, cl
mov ecx, dword [esp + 0x1c]
cdq
or ecx, eax
or ebp, edx
mov eax, dword [esp + 0x30]
xor ecx, edi
xor ebp, esi
mov dword [esp + 0x44], ebp
mov edi, ebp
jmp 0x1002ddb6
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x44], edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x80], 0x10
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov dword [esi + 0xf8], edx
mov edx, dword [esp + 0x2c]
mov dword [esi + 0xfc], edx
mov edx, dword [esp + 0x38]
mov dword [esi + 0x100], edx
mov edx, dword [esp + 0x40]
mov dword [esi + 0x104], edx
mov edx, dword [esp + 0x3c]
jne 0x1002e194
mov eax, dword [esp + 0x24]
mov ecx, edx
mov ebx, dword [esp + 0x2c]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x18]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x38]
shr eax, 0x11
mov dword [esp + 0x64], ebx
shld ecx, ebx, 0xf
mov dword [esi + 0x14], ebp
mov ebp, dword [esp + 0x58]
mov dword [esi + 0x18], ecx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x40]
shl ebx, 0xf
or ebx, eax
shr edx, 0x11
mov eax, dword [esp + 0x38]
shld eax, ecx, 0xf
mov dword [esi + 0x1c], ebx
shl ecx, 0xf
or edx, ecx
mov dword [esp + 0x2c], ebx
xor ebx, ebx
mov dword [esi + 0x24], edx
or ebx, eax
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x24]
mov ecx, edi
shld eax, ebp, 0xf
shr ecx, 0x11
xor edx, edx
or edx, eax
shl ebp, 0xf
mov eax, dword [esp + 0x24]
or ecx, ebp
mov ebp, dword [esp + 0x20]
shr eax, 0x11
mov dword [esi + 0x10], edi
shld edi, ebp, 0xf
mov dword [esi + 0x2c], ecx
shl ebp, 0xf
or ebp, eax
mov dword [esp + 0x64], ecx
mov eax, edx
mov dword [esi + 0x30], edi
shld eax, ecx, 0xf
mov dword [esi + 0x34], ebp
mov dword [esp + 0x20], ebp
xor ebp, ebp
or ebp, eax
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x20]
shl ecx, 0xf
shr edi, 0x11
or edi, ecx
mov dword [esi + 0x28], edx
mov ecx, dword [esp + 0x18]
shld ecx, eax, 0xf
shr edx, 0x11
shl eax, 0xf
or eax, edx
mov dword [esi + 0xd0], ecx
mov edx, dword [esp + 0x2c]
mov dword [esi + 0xd4], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x50]
mov dword [esi + 0x20], ebx
mov dword [esi + 0xc8], ebp
mov dword [esi + 0xcc], edi
mov esi, ebx
shld eax, edx, 0x1e
mov dword [esp + 0x18], ecx
xor ecx, ecx
shr esi, 2
shl edx, 0x1e
or esi, edx
or ecx, eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x4c], ecx
shr edx, 2
mov dword [esp + 0x64], edi
mov dword [eax + 0x38], ecx
xor ecx, ecx
mov dword [eax + 0x3c], esi
mov eax, dword [esp + 0x3c]
shld ebx, eax, 0x1e
mov dword [esp + 0x64], esi
shl eax, 0x1e
or ecx, ebx
or edx, eax
xor ebx, ebx
mov eax, dword [esp + 0x78]
mov dword [esp + 0x50], edx
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], edx
mov eax, ebp
mov edx, dword [esp + 0x18]
shld eax, edi, 0xf
shr edx, 0x11
or ebx, eax
shl edi, 0xf
mov eax, dword [esp + 0x78]
or edx, edi
mov edi, dword [esp + 0x18]
shr ebp, 0x11
mov dword [esp + 0x64], edx
mov dword [eax + 0x48], ebx
mov dword [eax + 0x4c], edx
mov eax, dword [esp + 0x20]
shld edi, eax, 0xf
shl eax, 0xf
or eax, ebp
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], eax
xor ebp, ebp
mov eax, dword [esp + 0x4c]
mov edi, ecx
shld eax, esi, 0xf
shr edi, 0x11
or ebp, eax
shl esi, 0xf
mov eax, dword [esp + 0x4c]
or edi, esi
mov dword [esp + 0x58], ebp
xor esi, esi
mov ebp, dword [esp + 0x50]
shld ecx, ebp, 0xf
shr eax, 0x11
shl ebp, 0xf
or esi, ecx
or eax, ebp
xor ecx, ecx
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x4c], eax
mov dword [ebp + 0x54], eax
mov eax, dword [esp + 0x18]
shr eax, 0x11
mov dword [esp + 0x50], eax
mov eax, ebx
shld eax, edx, 0xf
shr ebx, 0x11
or ecx, eax
shl edx, 0xf
or dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
mov dword [ebp + 0x5c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x54], ecx
mov dword [ebp + 0x58], ecx
mov ecx, dword [esp + 0x18]
shld ecx, eax, 0xf
mov dword [ebp + 0x50], esi
shl eax, 0xf
or eax, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], eax
mov ebx, ebp
mov dword [esp + 0x64], edi
mov ebp, dword [esp + 0x58]
mov edx, esi
shr edx, 0xf
mov dword [ebx + 0x64], eax
mov eax, ebp
shld eax, edi, 0x11
mov dword [ebx + 0x60], ecx
xor ecx, ecx
or ecx, eax
shr ebp, 0xf
mov eax, dword [esp + 0x4c]
shld esi, eax, 0x11
mov dword [ebx + 0xd8], ecx
shl eax, 0x11
or ebp, eax
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x48]
xor ecx, ecx
shl edi, 0x11
or ecx, esi
or edx, edi
mov dword [ebx + 0xe0], ecx
mov dword [ebx + 0xdc], edx
mov edi, ecx
mov dword [ebx + 0xe4], ebp
xor esi, esi
mov dword [esp + 0x64], edx
xor ebx, ebx
shld eax, edx, 0x11
shld ecx, ebp, 0x11
or ebx, eax
shl edx, 0x11
mov eax, dword [esp + 0x48]
or esi, ecx
mov ecx, dword [esp + 0x50]
shr edi, 0xf
or edi, edx
shr eax, 0xf
mov edx, dword [esp + 0x78]
shl ebp, 0x11
or eax, ebp
mov dword [esp + 0x58], ebx
mov ebp, dword [esp + 0x18]
mov dword [edx + 0x74], eax
mov dword [edx + 0x68], ebx
mov ebx, dword [esp + 0x20]
shl dword [esp + 0x20], 2
mov dword [esp + 0x48], eax
mov eax, ecx
shrd ebx, ebp, 0x1e
shl eax, 2
shr ebp, 0x1e
or ebp, eax
mov dword [edx + 0x6c], edi
mov eax, dword [esp + 0x54]
shrd ecx, eax, 0x1e
mov dword [edx + 0x78], ebp
mov dword [esp + 0x18], ebp
xor ebp, ebp
or ebp, ecx
shr eax, 0x1e
mov ecx, dword [esp + 0x20]
or ecx, eax
mov dword [esp + 0x64], edi
mov eax, dword [esp + 0x58]
mov dword [edx + 0x80], ecx
mov dword [edx + 0x70], esi
mov dword [edx + 0x7c], ebx
mov dword [edx + 0x84], ebp
mov edx, esi
shld eax, edi, 0x11
shr edx, 0xf
shl edi, 0x11
or edx, edi
mov dword [esp + 0x20], ecx
mov edi, dword [esp + 0x78]
xor ecx, ecx
or ecx, eax
mov dword [edi + 0x88], ecx
mov ecx, dword [esp + 0x58]
xor eax, eax
mov dword [edi + 0x8c], edx
mov edx, dword [esp + 0x48]
shld esi, edx, 0x11
shr ecx, 0xf
or eax, esi
shl edx, 0x11
mov esi, dword [esp + 0x20]
or ecx, edx
mov dword [edi + 0x90], eax
mov edx, esi
mov eax, dword [esp + 0x18]
mov dword [esp + 0x64], ebx
shld eax, ebx, 0x11
mov dword [edi + 0x94], ecx
xor ecx, ecx
shld esi, ebp, 0x11
or ecx, eax
shl ebx, 0x11
mov eax, dword [esp + 0x18]
shl ebp, 0x11
shr edx, 0xf
shr eax, 0xf
or edx, ebx
or ebp, eax
mov dword [edi + 0x110], esi
mov dword [edi + 0x114], ebp
xor eax, eax
mov dword [edi + 0x108], ecx
mov dword [edi + 0x10c], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
mov dword [esi + 0x10], ebx
xor ebp, ebp
mov ebx, dword [esp + 0x50]
mov dword [esi + 0x14], eax
mov eax, ebx
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x54]
mov dword [esi + 8], edi
mov edi, dword [esp + 0x48]
mov edx, edi
mov dword [esp + 0x64], ecx
shld eax, ecx, 0xf
shr ebx, 0x11
or ebp, eax
shr edx, 0x11
mov eax, dword [esp + 0x4c]
shld edi, eax, 0xf
shl ecx, 0xf
shl eax, 0xf
or edx, ecx
or ebx, eax
mov dword [esi + 0x1c], edx
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov dword [esi + 0x24], ebx
or ecx, edi
shr dword [esp + 0x24], 0x11
xor edi, edi
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x58]
shld eax, ebx, 0xf
mov dword [esi + 0x18], ebp
or edi, eax
shl ebx, 0xf
mov eax, dword [esp + 0x78]
mov dword [esi + 0x20], ecx
mov esi, dword [esp + 0x18]
shr esi, 0x11
or esi, ebx
mov dword [eax + 0x28], edi
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x18]
shld edi, ebx, 0xf
mov dword [eax + 0x2c], esi
shl ebx, 0xf
or ebx, dword [esp + 0x24]
mov dword [eax + 0x34], ebx
mov dword [eax + 0x30], edi
mov eax, ebp
mov dword [esp + 0x64], edx
shld eax, edx, 0xf
mov dword [esp + 0x20], ebx
mov ebx, ecx
shr ebx, 0x11
shl edx, 0xf
or ebx, edx
shr ebp, 0x11
xor edx, edx
mov dword [esp + 0x54], ebx
or edx, eax
mov dword [esp + 0x58], ebp
mov eax, dword [esp + 0x78]
xor ebp, ebp
mov dword [esp + 0x4c], edx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x28]
mov dword [eax + 0xc8], edx
mov edx, eax
mov eax, dword [esp + 0x58]
mov dword [edx + 0xcc], ebx
mov ebx, dword [esp + 0x50]
shld ecx, ebx, 0xf
shl ebx, 0xf
or eax, ebx
or ebp, ecx
mov dword [esp + 0x58], eax
mov dword [edx + 0xd4], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 0xd0], ebp
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x44]
xor edx, edx
mov ebx, dword [esp + 0x1c]
mov ecx, edi
shld eax, ebx, 0x1e
shr ecx, 2
or edx, eax
shl ebx, 0x1e
mov eax, dword [esp + 0x78]
or ecx, ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x50], edx
mov dword [esp + 0x28], ecx
mov dword [eax + 0x38], edx
mov edx, eax
xor eax, eax
shr ebx, 2
mov dword [esp + 0x64], esi
mov dword [edx + 0x3c], ecx
mov ecx, dword [esp + 0x30]
shld edi, ecx, 0x1e
or eax, edi
shl ecx, 0x1e
mov edi, dword [esp + 0x2c]
or ebx, ecx
mov dword [edx + 0x40], eax
xor ecx, ecx
mov dword [edx + 0x44], ebx
mov edx, edi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x38]
shrd eax, ebx, 0x13
shl edx, 0xd
or ecx, eax
shr ebx, 0x13
mov eax, dword [esp + 0x78]
or edx, ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x48], edx
shrd edi, ebx, 0x13
mov dword [eax + 0x48], edx
mov edx, dword [esp + 0x40]
shl edx, 0xd
mov dword [eax + 0x54], edi
mov dword [eax + 0x4c], ecx
shr ebx, 0x13
or ebx, edx
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x5c]
xor edx, edx
mov dword [eax + 0x50], ebx
mov eax, dword [esp + 0x18]
shr eax, 2
mov dword [esp + 0x40], eax
mov eax, edi
shld eax, esi, 0x1e
shr edi, 2
or edx, eax
shl esi, 0x1e
or dword [esp + 0x40], esi
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x64], ecx
mov dword [esi + 0x58], edx
mov edx, dword [esp + 0x18]
mov dword [esi + 0x5c], eax
mov eax, dword [esp + 0x20]
shld edx, eax, 0x1e
shl eax, 0x1e
mov dword [esi + 0x60], edx
or eax, edi
mov dword [esp + 0x18], edx
mov edx, ebx
mov dword [esi + 0x64], eax
mov esi, dword [esp + 0x48]
shr edx, 0x11
xor edi, edi
mov dword [esp + 0x20], eax
mov eax, esi
shr esi, 0x11
shld eax, ecx, 0xf
or edi, eax
shl ecx, 0xf
mov eax, dword [esp + 0x78]
or edx, ecx
mov dword [esp + 0x3c], edi
xor ecx, ecx
mov dword [eax + 0xd8], edi
mov edi, dword [esp + 0x2c]
shld ebx, edi, 0xf
mov dword [eax + 0xdc], edx
shl edi, 0xf
or ecx, ebx
mov ebx, dword [esp + 0x54]
or esi, edi
mov edi, dword [esp + 0x54]
mov dword [eax + 0xe4], esi
mov dword [eax + 0xe0], ecx
mov eax, dword [esp + 0x4c]
shld eax, edi, 0x1e
mov dword [esp + 0x64], ebx
mov ebx, ebp
shl edi, 0x1e
mov dword [esp + 0x48], esi
xor esi, esi
or esi, eax
shr ebx, 2
mov eax, dword [esp + 0x58]
or ebx, edi
mov edi, dword [esp + 0x78]
shld ebp, eax, 0x1e
mov dword [esp + 0x2c], esi
shl eax, 0x1e
mov dword [edi + 0x68], esi
mov esi, dword [esp + 0x4c]
mov dword [edi + 0x6c], ebx
shr esi, 2
or esi, eax
mov dword [esp + 0x38], ebx
mov dword [edi + 0x74], esi
xor ebx, ebx
or ebx, ebp
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x30]
xor ebp, ebp
mov dword [edi + 0x70], ebx
mov eax, esi
mov edi, dword [esp + 0x28]
shr eax, 2
mov dword [esp + 0x64], edi
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x50]
shld eax, edi, 0x1e
mov dword [esp + 0x64], edx
shl edi, 0x1e
or ebp, eax
or dword [esp + 0x54], edi
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x28], ebp
mov dword [edi + 0x78], ebp
mov ebp, dword [esp + 0x50]
mov dword [edi + 0x7c], eax
xor eax, eax
mov edi, dword [esp + 0x44]
shld esi, edi, 0x1e
shr ebp, 2
shl edi, 0x1e
or eax, esi
or ebp, edi
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x78]
mov dword [esp + 0x50], ebp
mov dword [edi + 0x84], ebp
mov ebp, ecx
mov dword [edi + 0x80], eax
mov edi, dword [esp + 0x3c]
shr ebp, 0xf
xor esi, esi
mov eax, edi
shr edi, 0xf
shld eax, edx, 0x11
or esi, eax
shl edx, 0x11
mov eax, dword [esp + 0x48]
or ebp, edx
mov edx, dword [esp + 0x78]
shld ecx, eax, 0x11
mov dword [esp + 0x58], ebp
shl eax, 0x11
or edi, eax
mov dword [edx + 0x88], esi
mov eax, dword [esp + 0x40]
mov dword [edx + 0xe8], eax
mov dword [edx + 0x94], edi
mov dword [esp + 0x64], eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
mov dword [edx + 0xf0], eax
mov dword [edx + 0x8c], ebp
xor ebp, ebp
or ebp, ecx
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x4c]
shrd ecx, ebx, 0x1e
mov dword [esp + 0x3c], edi
xor edi, edi
or edi, dword [esp + 0x5c]
mov dword [esp + 0x44], esi
xor esi, esi
or esi, dword [esp + 0x18]
mov dword [edx + 0xf4], edi
mov dword [edx + 0x90], ebp
mov dword [edx + 0xec], esi
mov edx, dword [esp + 0x38]
mov eax, edx
shl eax, 2
shr ebx, 0x1e
or ebx, eax
mov dword [esp + 0x64], esi
mov eax, dword [esp + 0x78]
mov dword [eax + 0x98], ebx
mov ebx, eax
mov eax, dword [esp + 0x2c]
shrd edx, eax, 0x1e
mov dword [ebx + 0x9c], ecx
mov ecx, dword [esp + 0x4c]
shr eax, 0x1e
shl ecx, 2
or eax, ecx
mov dword [ebx + 0xa4], edx
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov dword [ebx + 0xa0], eax
mov ebx, dword [esp + 0x40]
mov eax, ebx
shld eax, esi, 0x11
shr edx, 0xf
or ecx, eax
shl esi, 0x11
mov eax, dword [esp + 0x20]
or edx, esi
mov esi, dword [esp + 0x78]
shld eax, edi, 0x11
shr ebx, 0xf
shl edi, 0x11
or edi, ebx
mov dword [esi + 0xa8], ecx
mov dword [esi + 0xb4], edi
mov edi, dword [esp + 0x3c]
mov ecx, edi
mov dword [esi + 0xac], edx
mov edx, dword [esp + 0x58]
mov dword [esi + 0xb0], eax
mov eax, edx
shrd ecx, ebp, 0x1e
shl eax, 2
shr ebp, 0x1e
or ebp, eax
mov dword [esi + 0xb8], ebp
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
shrd edx, eax, 0x1e
mov dword [esi + 0xbc], ecx
xor ecx, ecx
shr eax, 0x1e
mov dword [esi + 0xc4], edx
mov edx, ebx
shl edi, 2
or eax, edi
shl edx, 0x13
mov dword [esi + 0xc0], eax
mov eax, ebp
mov esi, dword [esp + 0x30]
shrd eax, esi, 0xd
shl ebp, 0x13
or ecx, eax
shr esi, 0xd
mov eax, dword [esp + 0x28]
or edx, esi
mov esi, dword [esp + 0x78]
shrd ebx, eax, 0xd
pop edi
shr eax, 0xd
or eax, ebp
mov dword [esi + 0x114], ebx
mov dword [esi + 0x110], eax
xor eax, eax
mov dword [esi + 0x108], edx
mov dword [esi + 0x10c], ecx
pop esi
pop ebp
pop ebx
add esp, 0x64
ret