Function at 0x3662935c
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
cmp dword [ebp + 0x10], 0
mov eax, dword [ebp + 8]
je 0x36629387
mov ecx, dword [eax + 0x68]
cmp ecx, 8
jae 0x36629387
mov edx, dword [ebp + 0xc]
mov dl, byte [edx]
mov byte [ecx + eax + 0x60], dl
inc dword [eax + 0x68]
inc dword [ebp + 0xc]
dec dword [ebp + 0x10]
jne 0x3662936b
cmp dword [eax + 0x68], 8
jb 0x36629d3b
mov ecx, dword [eax + 0x60]
xor ecx, dword [eax + 0x78]
mov edx, dword [ebp + 0x10]
push ebx
mov ebx, ecx
shr ebx, 8
push esi
mov esi, dword [eax + 0x64]
xor esi, dword [eax + 0x7c]
shr edx, 3
mov dword [ebp - 0x34], edx
mov edx, ecx
shl ecx, 8
shl edx, 8
xor ebx, edx
push edi
mov edi, 0xff00ff
and ebx, edi
xor ebx, ecx
mov edx, ebx
shl ebx, 0x10
shr edx, 0x10
or edx, ebx
mov ebx, esi
shr ebx, 8
mov ecx, esi
shl ecx, 8
xor ebx, ecx
and ebx, edi
shl esi, 8
xor ebx, esi
mov esi, dword [eax]
mov ecx, ebx
shr ecx, 0x10
shl ebx, 0x10
or ecx, ebx
mov ebx, dword [eax + 4]
add esi, ecx
mov dword [ebp - 0x40], ecx
push 0x20
pop ecx
sub ecx, ebx
mov ebx, esi
shr ebx, cl
mov ecx, dword [eax + 4]
shl esi, cl
push 0x20
or ebx, esi
movzx ecx, bh
mov ecx, dword [ecx*4 + 0x36607f00]
mov dword [ebp + 8], ebx
mov esi, 0xff
and ebx, esi
xor ecx, dword [ebx*4 + 0x36608300]
movzx ebx, byte [ebp + 0xa]
add ecx, dword [ebx*4 + 0x36608b00]
mov ebx, ecx
mov ecx, dword [ebp + 8]
shr ecx, 0x18
sub ebx, dword [ecx*4 + 0x36608700]
mov ecx, dword [eax + 8]
xor edx, ebx
mov ebx, dword [eax + 0xc]
xor ecx, edx
mov dword [ebp - 0x30], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 0x30]
mov dword [ebp + 8], ebx
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0xc]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
sub ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
add ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
xor ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x10]
xor dword [ebp - 0x40], ebx
sub ecx, dword [ebp - 0x40]
push 0x20
mov dword [ebp - 0x30], ecx
mov ebx, ecx
mov dword [ebp + 8], ebx
pop ecx
sub ecx, dword [eax + 0x14]
push 0x20
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x14]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
add ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
xor ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
sub ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x18]
xor edx, ebx
mov ebx, dword [eax + 0x1c]
add ecx, edx
mov dword [ebp - 0x30], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 0x30]
mov dword [ebp + 8], ebx
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x1c]
shl ebx, cl
mov ecx, dword [ebp + 8]
push 0x20
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
xor ebx, dword [ecx*4 + 0x36608300]
movzx ecx, byte [ebp + 0xa]
add ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
sub ebx, dword [ecx*4 + 0x36608700]
mov ecx, dword [eax + 0x20]
xor dword [ebp - 0x40], ebx
xor ecx, dword [ebp - 0x40]
mov dword [ebp - 0x30], ecx
mov ebx, ecx
mov dword [ebp + 8], ebx
pop ecx
sub ecx, dword [eax + 0x24]
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x24]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
sub ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
add ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
xor ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x28]
xor edx, ebx
mov ebx, dword [eax + 0x2c]
sub ecx, edx
mov dword [ebp - 0x30], ecx
push 0x20
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 0x30]
mov dword [ebp + 8], ebx
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x2c]
shl ebx, cl
mov ecx, dword [ebp + 8]
push 0x20
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
add ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
xor ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
sub ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x30]
xor dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 0x40]
add ecx, ebx
mov dword [ebp - 0x30], ecx
mov ebx, ecx
mov dword [ebp + 8], ebx
pop ecx
sub ecx, dword [eax + 0x34]
push 0x20
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x34]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
xor ebx, dword [ecx*4 + 0x36608300]
movzx ecx, byte [ebp + 0xa]
add ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
sub ebx, dword [ecx*4 + 0x36608700]
mov ecx, dword [eax + 0x38]
xor edx, ebx
mov ebx, dword [eax + 0x3c]
xor ecx, edx
mov dword [ebp - 0x30], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 0x30]
mov dword [ebp + 8], ebx
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x3c]
shl ebx, cl
mov ecx, dword [ebp + 8]
push 0x20
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
sub ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
add ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
xor ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x40]
xor dword [ebp - 0x40], ebx
sub ecx, dword [ebp - 0x40]
mov dword [ebp - 0x30], ecx
mov ebx, ecx
pop ecx
sub ecx, dword [eax + 0x44]
mov dword [ebp + 8], ebx
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x44]
shl ebx, cl
mov ecx, dword [ebp + 8]
push 0x20
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
add ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
xor ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
sub ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x48]
xor edx, ebx
mov ebx, dword [eax + 0x4c]
add ecx, edx
mov dword [ebp - 0x30], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 0x30]
mov dword [ebp + 8], ebx
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x4c]
shl ebx, cl
mov ecx, dword [ebp + 8]
push 0x20
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
xor ebx, dword [ecx*4 + 0x36608300]
movzx ecx, byte [ebp + 0xa]
add ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
sub ebx, dword [ecx*4 + 0x36608700]
mov ecx, dword [eax + 0x50]
xor dword [ebp - 0x40], ebx
xor ecx, dword [ebp - 0x40]
mov dword [ebp - 0x30], ecx
mov ebx, ecx
mov dword [ebp + 8], ebx
pop ecx
sub ecx, dword [eax + 0x54]
push 0x20
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x54]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
sub ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
add ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
xor ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x58]
xor edx, ebx
mov ebx, dword [eax + 0x5c]
sub ecx, edx
mov dword [ebp - 0x30], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 0x30]
mov dword [ebp + 8], ebx
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x5c]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
mov dword [ebp + 8], ecx
movzx ebx, ch
and ecx, esi
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebx*4 + 0x36607f00]
mov ebx, dword [ebp - 0x30]
add ecx, dword [ebx*4 + 0x36608300]
mov ebx, dword [ebp + 8]
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x36608700]
mov dword [ebp - 0x30], ebx
movzx ebx, byte [ebp + 0xa]
sub ecx, dword [ebx*4 + 0x36608b00]
xor ecx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov edx, ecx
shr edx, 8
mov ebx, ecx
shl ebx, 8
xor edx, ebx
and edx, edi
shl ecx, 8
xor edx, ecx
mov ecx, dword [ebp - 0x40]
mov ebx, edx
shl edx, 0x10
shr ebx, 0x10
or ebx, edx
mov edx, dword [ebp - 0x40]
shl edx, 8
shr ecx, 8
xor ecx, edx
mov edx, dword [ebp - 0x40]
shl edx, 8
and ecx, edi
xor ecx, edx
mov edx, ecx
shr edx, 0x10
shl ecx, 0x10
or edx, ecx
cmp dword [ebp - 0x34], 0
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], edx
je 0x36629d12
mov edx, dword [eax + 4]
push 0x20
pop ecx
mov dword [ebp - 4], ecx
sub dword [ebp - 4], edx
mov edx, dword [eax + 0xc]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 8], ecx
sub dword [ebp - 8], edx
mov edx, dword [eax + 0x14]
mov dword [ebp - 0xc], ecx
sub dword [ebp - 0xc], edx
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x10], ecx
sub dword [ebp - 0x10], edx
mov edx, dword [eax + 0x24]
mov dword [ebp - 0x14], ecx
sub dword [ebp - 0x14], edx
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0x18], ecx
sub dword [ebp - 0x18], edx
mov edx, dword [eax + 0x34]
mov dword [ebp - 0x1c], ecx
sub dword [ebp - 0x1c], edx
mov edx, dword [eax + 0x3c]
mov dword [ebp - 0x20], ecx
sub dword [ebp - 0x20], edx
mov edx, dword [eax + 0x44]
mov dword [ebp - 0x24], ecx
sub dword [ebp - 0x24], edx
mov edx, dword [eax + 0x4c]
mov dword [ebp - 0x28], ecx
sub dword [ebp - 0x28], edx
mov edx, dword [eax + 0x54]
mov dword [ebp - 0x2c], ecx
sub dword [ebp - 0x2c], edx
mov edx, dword [eax + 0x5c]
mov dword [ebp - 0x30], ecx
sub dword [ebp - 0x30], edx
lea edx, [ebp - 0x44]
mov ecx, ebx
sub ecx, edx
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x34], edx
lea edx, [ebx + edx*8]
mov dword [ebp + 0xc], edx
jmp 0x366298ad
mov ecx, dword [ebp - 0x38]
and dword [ebp + 8], 0
mov edx, dword [ebp + 8]
lea edx, [ebp + edx - 0x44]
mov bl, byte [ecx + edx]
xor byte [edx], bl
inc dword [ebp + 8]
cmp dword [ebp + 8], 8
jb 0x366298b1
add ecx, 8
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x38], ecx
mov ecx, edx
shr ecx, 8
mov ebx, edx
shl ebx, 8
xor ecx, ebx
and ecx, edi
mov ebx, dword [ebp - 0x40]
shl ebx, 8
shl edx, 8
xor ecx, edx
mov edx, ecx
shl ecx, 0x10
shr edx, 0x10
or edx, ecx
mov ecx, dword [ebp - 0x40]
shr ecx, 8
xor ecx, ebx
mov ebx, dword [ebp - 0x40]
and ecx, edi
shl ebx, 8
xor ecx, ebx
mov ebx, ecx
shl ecx, 0x10
shr ebx, 0x10
or ebx, ecx
mov ecx, dword [eax]
mov dword [ebp - 0x40], ebx
add ebx, ecx
mov ecx, dword [ebp - 4]
mov dword [ebp + 8], ebx
shr dword [ebp + 8], cl
mov ecx, dword [eax + 4]
mov dword [ebp - 0x3c], ebx
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
xor ebx, dword [ecx*4 + 0x36608300]
movzx ecx, byte [ebp + 0xa]
add ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
sub ebx, dword [ecx*4 + 0x36608700]
mov ecx, dword [eax + 8]
xor edx, ebx
xor ecx, edx
mov dword [ebp - 0x3c], ecx
mov ebx, ecx
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 8]
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0xc]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
sub ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
add ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
xor ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x10]
xor dword [ebp - 0x40], ebx
sub ecx, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ecx
mov ebx, ecx
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0xc]
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x14]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
add ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
xor ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
sub ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x18]
xor edx, ebx
add ecx, edx
mov dword [ebp - 0x3c], ecx
mov ebx, ecx
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x10]
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x1c]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
xor ebx, dword [ecx*4 + 0x36608300]
movzx ecx, byte [ebp + 0xa]
add ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
sub ebx, dword [ecx*4 + 0x36608700]
mov ecx, dword [eax + 0x20]
xor dword [ebp - 0x40], ebx
xor ecx, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ecx
mov ebx, ecx
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x14]
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x24]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
sub ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
add ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
xor ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x28]
xor edx, ebx
sub ecx, edx
mov dword [ebp - 0x3c], ecx
mov ebx, ecx
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x18]
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x2c]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
add ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
xor ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
sub ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x30]
xor dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 0x40]
add ecx, ebx
mov dword [ebp - 0x3c], ecx
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x1c]
shr dword [ebp + 8], cl
mov ebx, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x34]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
xor ebx, dword [ecx*4 + 0x36608300]
movzx ecx, byte [ebp + 0xa]
add ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
sub ebx, dword [ecx*4 + 0x36608700]
mov ecx, dword [eax + 0x38]
xor edx, ebx
xor ecx, edx
mov dword [ebp - 0x3c], ecx
mov ebx, ecx
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x20]
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x3c]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
sub ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
add ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
xor ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x40]
xor dword [ebp - 0x40], ebx
sub ecx, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ecx
mov ebx, ecx
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x24]
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x44]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
add ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
xor ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
sub ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x48]
xor edx, ebx
add ecx, edx
mov dword [ebp - 0x3c], ecx
mov ebx, ecx
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x28]
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x4c]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
xor ebx, dword [ecx*4 + 0x36608300]
movzx ecx, byte [ebp + 0xa]
add ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
sub ebx, dword [ecx*4 + 0x36608700]
mov ecx, dword [eax + 0x50]
xor dword [ebp - 0x40], ebx
xor ecx, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ecx
mov ebx, ecx
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x2c]
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x54]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
movzx ebx, ch
mov ebx, dword [ebx*4 + 0x36607f00]
mov dword [ebp + 8], ecx
and ecx, esi
sub ebx, dword [ecx*4 + 0x36608300]
mov ecx, dword [ebp + 8]
shr ecx, 0x18
add ebx, dword [ecx*4 + 0x36608700]
movzx ecx, byte [ebp + 0xa]
xor ebx, dword [ecx*4 + 0x36608b00]
mov ecx, dword [eax + 0x58]
xor edx, ebx
sub ecx, edx
mov dword [ebp - 0x3c], ecx
mov ebx, ecx
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x30]
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0x5c]
shl ebx, cl
mov ecx, dword [ebp + 8]
or ecx, ebx
mov dword [ebp + 8], ecx
movzx ebx, ch
and ecx, esi
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebx*4 + 0x36607f00]
mov ebx, dword [ebp - 0x3c]
add ecx, dword [ebx*4 + 0x36608300]
mov ebx, dword [ebp + 8]
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x36608700]
mov dword [ebp - 0x3c], ebx
movzx ebx, byte [ebp + 0xa]
sub ecx, dword [ebx*4 + 0x36608b00]
xor ecx, dword [ebp - 0x40]
mov dword [ebp - 0x40], edx
mov edx, ecx
shr edx, 8
mov ebx, ecx
shl ebx, 8
xor edx, ebx
and edx, edi
shl ecx, 8
xor edx, ecx
mov ecx, dword [ebp - 0x40]
mov ebx, edx
shl edx, 0x10
shr ebx, 0x10
or ebx, edx
mov edx, dword [ebp - 0x40]
shl edx, 8
shr ecx, 8
xor ecx, edx
mov edx, dword [ebp - 0x40]
shl edx, 8
and ecx, edi
xor ecx, edx
mov edx, ecx
shr edx, 0x10
shl ecx, 0x10
or edx, ecx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], edx
dec dword [ebp - 0x34]
jne 0x366298aa
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
and ecx, 7
mov dword [eax + 0x68], ecx
mov edx, ecx
shr ecx, 2
lea edi, [eax + 0x60]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x40]
pop edi
pop esi
mov dword [eax + 0x78], ebx
mov dword [eax + 0x7c], ecx
pop ebx
xor eax, eax
leave
ret 0xc