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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
push esi
jmp 0x3662836f
mov esi, dword [eax + 0x68]
cmp esi, 8
jae 0x36628374
mov ecx, dword [ebp + 0xc]
mov cl, byte [ecx]
mov byte [esi + eax + 0x60], cl
inc dword [eax + 0x68]
inc dword [ebp + 0xc]
dec dword [edx]
cmp dword [edx], 0
jne 0x36628356
cmp dword [eax + 0x68], 8
jb 0x36628d13
mov edx, dword [edx]
mov ecx, dword [eax + 0x60]
xor ecx, dword [eax + 0x78]
push ebx
mov ebx, ecx
mov esi, dword [eax + 0x64]
xor esi, dword [eax + 0x7c]
shr ebx, 8
shr edx, 3
mov dword [ebp - 0xc], 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 - 0x10], 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 - 4], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 4]
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 - 0x10], ebx
sub ecx, dword [ebp - 0x10]
push 0x20
mov dword [ebp - 4], 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 - 4], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 4]
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 - 0x10], ebx
xor ecx, dword [ebp - 0x10]
mov dword [ebp - 4], 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 - 4], ecx
push 0x20
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 4]
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 - 0x10], ebx
mov ebx, dword [ebp - 0x10]
add ecx, ebx
mov dword [ebp - 4], 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 - 4], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 4]
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 - 0x10], ebx
sub ecx, dword [ebp - 0x10]
mov dword [ebp - 4], 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 - 4], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 4]
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 - 0x10], ebx
xor ecx, dword [ebp - 0x10]
mov dword [ebp - 4], 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 - 4], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 4]
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 - 8], ecx
mov ecx, dword [ebx*4 + 0x36607f00]
mov ebx, dword [ebp - 8]
add ecx, dword [ebx*4 + 0x36608300]
mov ebx, dword [ebp + 8]
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x36608700]
mov dword [ebp - 8], ebx
movzx ebx, byte [ebp + 0xa]
sub ecx, dword [ebx*4 + 0x36608b00]
xor ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], edx
mov ebx, ecx
shr ebx, 8
mov edx, ecx
shl ecx, 8
shl edx, 8
xor ebx, edx
and ebx, edi
xor ebx, ecx
mov ecx, dword [ebp - 0x10]
mov edx, ebx
shl ebx, 0x10
shr edx, 0x10
or edx, ebx
mov ebx, dword [ebp - 0x10]
shl ebx, 8
shr ecx, 8
xor ecx, ebx
mov ebx, dword [ebp - 0x10]
shl ebx, 8
and ecx, edi
xor ecx, ebx
mov ebx, ecx
shl ecx, 0x10
shr ebx, 0x10
or ebx, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 4], ebx
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0xc]
mov dword [ecx], edx
add ecx, 8
test ebx, ebx
mov dword [ebp - 0x14], edx
mov dword [ebp + 0x10], ecx
je 0x36628cde
mov ecx, dword [ebp + 0xc]
lea edx, [ebp - 0x14]
sub ecx, edx
mov edx, dword [ebp + 0xc]
lea edx, [edx + ebx*8]
mov dword [ebp - 8], ebx
mov dword [ebp + 0xc], edx
jmp 0x36628836
mov ecx, dword [ebp - 0xc]
and dword [ebp + 8], 0
mov edx, dword [ebp + 8]
lea edx, [ebp + edx - 0x14]
mov bl, byte [edx + ecx]
xor byte [edx], bl
inc dword [ebp + 8]
cmp dword [ebp + 8], 8
jb 0x3662883a
add ecx, 8
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ecx
mov ecx, edx
shr ecx, 8
mov ebx, edx
shl ebx, 8
xor ecx, ebx
and ecx, edi
mov ebx, dword [ebp - 0x10]
shr ebx, 8
shl edx, 8
xor ecx, edx
mov edx, ecx
shl ecx, 0x10
shr edx, 0x10
or edx, ecx
mov ecx, dword [ebp - 0x10]
shl ecx, 8
xor ebx, ecx
mov ecx, dword [ebp - 0x10]
shl ecx, 8
and ebx, edi
xor ebx, ecx
mov ecx, ebx
shr ecx, 0x10
shl ebx, 0x10
or ecx, ebx
mov ebx, dword [eax]
add ebx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp + 8], ebx
mov dword [ebp - 4], ebx
push 0x20
pop ecx
sub ecx, dword [eax + 4]
push 0x20
shr dword [ebp + 8], cl
mov ecx, dword [eax + 4]
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
mov ebx, dword [eax + 0xc]
xor ecx, edx
mov dword [ebp - 4], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 4]
mov dword [ebp + 8], ebx
shr dword [ebp + 8], cl
mov ecx, dword [eax + 0xc]
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 + 0x10]
xor dword [ebp - 0x10], ebx
sub ecx, dword [ebp - 0x10]
mov dword [ebp - 4], 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 - 4], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 4]
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 - 0x10], ebx
xor ecx, dword [ebp - 0x10]
mov dword [ebp - 4], ecx
mov ebx, ecx
mov dword [ebp + 8], ebx
pop ecx
sub ecx, dword [eax + 0x24]
push 0x20
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 - 4], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 4]
mov dword [ebp + 8], ebx
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 - 0x10], ebx
mov ebx, dword [ebp - 0x10]
add ecx, ebx
mov dword [ebp - 4], ecx
mov ebx, ecx
mov dword [ebp + 8], ebx
push 0x20
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 - 4], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 4]
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 - 0x10], ebx
sub ecx, dword [ebp - 0x10]
mov dword [ebp - 4], ecx
mov ebx, ecx
mov dword [ebp + 8], ebx
pop ecx
sub ecx, dword [eax + 0x44]
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 ebx, dword [eax + 0x4c]
mov dword [ebp - 4], ecx
push 0x20
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 4]
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 - 0x10], ebx
xor ecx, dword [ebp - 0x10]
mov dword [ebp - 4], 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 - 4], ecx
pop ecx
sub ecx, ebx
mov ebx, dword [ebp - 4]
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 - 4], ecx
mov ecx, dword [ebx*4 + 0x36607f00]
mov ebx, dword [ebp - 4]
add ecx, dword [ebx*4 + 0x36608300]
mov ebx, dword [ebp + 8]
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x36608700]
mov dword [ebp - 4], ebx
movzx ebx, byte [ebp + 0xa]
sub ecx, dword [ebx*4 + 0x36608b00]
xor ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], edx
mov ebx, ecx
shr ebx, 8
mov edx, ecx
shl ecx, 8
shl edx, 8
xor ebx, edx
and ebx, edi
xor ebx, ecx
mov ecx, dword [ebp - 0x10]
mov edx, ebx
shl ebx, 0x10
shr edx, 0x10
or edx, ebx
mov ebx, dword [ebp - 0x10]
shr ecx, 8
shl ebx, 8
xor ecx, ebx
mov ebx, dword [ebp - 0x10]
and ecx, edi
shl ebx, 8
xor ecx, ebx
mov ebx, ecx
shl ecx, 0x10
shr ebx, 0x10
or ebx, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edx
mov dword [ecx + 4], ebx
add ecx, 8
dec dword [ebp - 8]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], ebx
mov dword [ebp + 0x10], ecx
jne 0x36628833
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx]
mov esi, dword [ebp + 0xc]
and ecx, 7
mov dword [eax + 0x68], ecx
mov ebx, ecx
shr ecx, 2
lea edi, [eax + 0x60]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x7c], ecx
push 8
pop ecx
sub ecx, dword [eax + 0x68]
mov dword [eax + 0x78], edx
mov eax, dword [ebp + 0x14]
add dword [eax], ecx
pop edi
pop ebx
xor eax, eax
pop esi
leave
ret 0x10