Function at 0x10003740
Capabilities:
Encode data using xor

Disassembly:
push esi
mov esi, ecx
test edx, edx
je 0x10003bca
test eax, eax
je 0x10003bca
cmp esi, 0x10
je 0x1000378d
cmp esi, 0x18
je 0x10003766
cmp esi, 0x20
jne 0x10003bca
cmp esi, 0x10
je 0x1000378d
cmp esi, 0x18
je 0x10003781
cmp esi, 0x20
jne 0x10003797
mov dword [eax + 0xf0], 0xe
jmp 0x10003797
mov dword [eax + 0xf0], 0xc
jmp 0x10003797
mov dword [eax + 0xf0], 0xa
movzx ecx, byte [edx]
push ebx
push edi
movzx edi, byte [edx + 1]
shl ecx, 8
xor ecx, edi
movzx edi, byte [edx + 2]
shl ecx, 8
xor ecx, edi
movzx edi, byte [edx + 3]
shl ecx, 8
xor ecx, edi
mov dword [eax], ecx
movzx edi, byte [edx + 4]
movzx ebx, byte [edx + 5]
shl edi, 8
xor edi, ebx
movzx ebx, byte [edx + 6]
shl edi, 8
xor edi, ebx
movzx ebx, byte [edx + 7]
shl edi, 8
xor edi, ebx
mov dword [eax + 4], edi
movzx edi, byte [edx + 8]
movzx ebx, byte [edx + 9]
shl edi, 8
xor edi, ebx
movzx ebx, byte [edx + 0xa]
lea ecx, [eax + 4]
shl edi, 8
xor edi, ebx
movzx ebx, byte [edx + 0xb]
shl edi, 8
xor edi, ebx
mov dword [eax + 8], edi
movzx edi, byte [edx + 0xc]
movzx ebx, byte [edx + 0xd]
shl edi, 8
xor edi, ebx
movzx ebx, byte [edx + 0xe]
shl edi, 8
xor edi, ebx
movzx ebx, byte [edx + 0xf]
shl edi, 8
xor edi, ebx
mov dword [eax + 0xc], edi
cmp esi, 0x10
jne 0x10003903
mov esi, edi
shr edi, 8
mov edx, esi
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x100d6018]
and edi, 0xff
xor edx, dword [edi*4 + 0x100d5c18]
mov edi, esi
shr edi, 0x18
xor edx, dword [edi*4 + 0x100d5418]
mov edi, esi
and edi, 0xff
xor edx, dword [edi*4 + 0x100d5818]
mov edi, dword [ecx]
xor edx, dword [eax]
xor edx, 0x1000000
xor edi, edx
mov dword [eax + 0x10], edx
mov edx, dword [eax + 8]
xor edx, edi
mov dword [eax + 0x18], edx
xor edx, esi
mov dword [eax + 0x14], edi
mov dword [eax + 0x1c], edx
mov esi, 0x100d741c
mov edi, edi
mov edx, dword [ecx + 0x18]
add ecx, 0x10
mov eax, edx
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x100d6018]
mov edi, edx
shr edi, 8
and edi, 0xff
xor eax, dword [edi*4 + 0x100d5c18]
mov edi, edx
and edx, 0xff
shr edi, 0x18
xor eax, dword [edi*4 + 0x100d5418]
add esi, 4
xor eax, dword [edx*4 + 0x100d5818]
xor eax, dword [ecx - 4]
xor eax, dword [esi - 4]
mov dword [ecx + 0xc], eax
mov edx, dword [ecx]
xor edx, eax
mov dword [ecx + 0x10], edx
mov eax, dword [ecx + 4]
xor eax, edx
mov dword [ecx + 0x14], eax
mov edx, dword [ecx + 8]
xor edx, eax
mov dword [ecx + 0x18], edx
cmp esi, 0x100d7440
jne 0x10003890
pop edi
pop ebx
xor eax, eax
pop esi
ret
movzx edi, byte [edx + 0x10]
movzx ebx, byte [edx + 0x11]
shl edi, 8
xor edi, ebx
movzx ebx, byte [edx + 0x12]
shl edi, 8
xor edi, ebx
movzx ebx, byte [edx + 0x13]
shl edi, 8
xor edi, ebx
mov dword [eax + 0x10], edi
movzx edi, byte [edx + 0x14]
movzx ebx, byte [edx + 0x15]
shl edi, 8
xor edi, ebx
movzx ebx, byte [edx + 0x16]
shl edi, 8
xor edi, ebx
movzx ebx, byte [edx + 0x17]
shl edi, 8
xor edi, ebx
mov dword [eax + 0x14], edi
cmp esi, 0x18
jne 0x10003a3c
mov ecx, dword [ecx]
mov esi, edi
mov edx, esi
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x100d6018]
shr edi, 8
and edi, 0xff
xor edx, dword [edi*4 + 0x100d5c18]
mov edi, esi
shr edi, 0x18
xor edx, dword [edi*4 + 0x100d5418]
and esi, 0xff
xor edx, dword [esi*4 + 0x100d5818]
mov esi, 0x100d741c
xor edx, dword [eax]
xor edx, 0x1000000
xor ecx, edx
mov dword [eax + 0x18], edx
mov edx, dword [eax + 8]
xor edx, ecx
mov dword [eax + 0x1c], ecx
mov ecx, dword [eax + 0xc]
xor ecx, edx
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], ecx
add eax, 0x28
mov ecx, dword [eax - 0x18]
xor ecx, dword [eax - 4]
mov edx, dword [eax - 0x14]
xor edx, ecx
mov dword [eax], ecx
mov dword [eax + 4], edx
mov edx, dword [eax + 4]
add eax, 0x18
mov ecx, edx
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x100d6018]
mov edi, edx
shr edi, 8
and edi, 0xff
xor ecx, dword [edi*4 + 0x100d5c18]
mov edi, edx
and edx, 0xff
shr edi, 0x18
xor ecx, dword [edi*4 + 0x100d5418]
add esi, 4
xor ecx, dword [edx*4 + 0x100d5818]
xor ecx, dword [eax - 0x28]
xor ecx, dword [esi - 4]
mov dword [eax - 0x10], ecx
mov edx, dword [eax - 0x24]
xor edx, ecx
mov dword [eax - 0xc], edx
mov ecx, dword [eax - 0x20]
xor ecx, edx
mov dword [eax - 8], ecx
mov edx, dword [eax - 0x1c]
xor edx, ecx
mov dword [eax - 4], edx
cmp esi, 0x100d7438
jne 0x100039b7
pop edi
pop ebx
xor eax, eax
pop esi
ret
movzx edi, byte [edx + 0x18]
movzx ebx, byte [edx + 0x19]
shl edi, 8
xor edi, ebx
movzx ebx, byte [edx + 0x1a]
shl edi, 8
xor edi, ebx
movzx ebx, byte [edx + 0x1b]
shl edi, 8
xor edi, ebx
mov dword [eax + 0x18], edi
movzx edi, byte [edx + 0x1c]
movzx ebx, byte [edx + 0x1d]
shl edi, 8
xor edi, ebx
movzx ebx, byte [edx + 0x1e]
movzx edx, byte [edx + 0x1f]
shl edi, 8
xor edi, ebx
shl edi, 8
xor edi, edx
mov dword [eax + 0x1c], edi
cmp esi, 0x20
jne 0x100038fd
mov ecx, dword [ecx]
mov esi, edi
mov edx, esi
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x100d6018]
shr edi, 8
and edi, 0xff
xor edx, dword [edi*4 + 0x100d5c18]
mov edi, esi
shr edi, 0x18
xor edx, dword [edi*4 + 0x100d5418]
and esi, 0xff
xor edx, dword [esi*4 + 0x100d5818]
mov esi, 0x100d741c
xor edx, dword [eax]
xor edx, 0x1000000
xor ecx, edx
mov dword [eax + 0x20], edx
mov edx, dword [eax + 8]
xor edx, ecx
mov dword [eax + 0x24], ecx
mov ecx, dword [eax + 0xc]
xor ecx, edx
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
add eax, 0x30
mov edx, dword [eax - 4]
ror edx, 8
mov ecx, edx
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x100d6018]
mov edi, edx
shr edi, 8
and edi, 0xff
xor ecx, dword [edi*4 + 0x100d5c18]
mov edi, edx
and edx, 0xff
shr edi, 0x18
xor ecx, dword [edi*4 + 0x100d5418]
add eax, 0x20
xor ecx, dword [edx*4 + 0x100d5818]
mov edx, dword [eax - 0x3c]
xor ecx, dword [eax - 0x40]
add esi, 4
xor edx, ecx
mov dword [eax - 0x20], ecx
mov ecx, dword [eax - 0x38]
xor ecx, edx
mov dword [eax - 0x1c], edx
mov edx, dword [eax - 0x34]
xor edx, ecx
mov dword [eax - 0x18], ecx
mov dword [eax - 0x14], edx
mov edx, dword [eax - 0x14]
mov ecx, edx
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x100d6018]
mov edi, edx
shr edi, 8
and edi, 0xff
xor ecx, dword [edi*4 + 0x100d5c18]
mov edi, edx
and edx, 0xff
shr edi, 0x18
xor ecx, dword [edi*4 + 0x100d5418]
xor ecx, dword [edx*4 + 0x100d5818]
xor ecx, dword [eax - 0x30]
xor ecx, dword [esi - 4]
mov dword [eax - 0x10], ecx
mov edx, dword [eax - 0x2c]
xor edx, ecx
mov dword [eax - 0xc], edx
mov ecx, dword [eax - 0x28]
xor ecx, edx
mov dword [eax - 8], ecx
mov edx, dword [eax - 0x24]
xor edx, ecx
mov dword [eax - 4], edx
cmp esi, 0x100d7434
jne 0x10003af0
pop edi
pop ebx
xor eax, eax
pop esi
ret
mov eax, 0x101002b
pop esi
ret