Function at 0x1037a940
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov ebx, ecx
push 0xc0
push 0
lea eax, [ebx + 0x1118]
push eax
call fcn.10425c00
push 0x80
lea eax, [ebx + 0x11d8]
push 0
push eax
call fcn.10425c00
push 0x80
lea esi, [ebx + 0x1258]
push 0
push esi
call fcn.10425c00
mov eax, dword [ebx + 0x16fc]
add esp, 0x24
xor eax, dword [esi]
and eax, 0x7ffff
xor eax, dword [esi]
cmp dword [ebx + 0x16f4], 0
je 0x1037a9a5
mov ecx, dword [ebx + 0x16f8]
jmp 0x1037a9ac
movsx ecx, byte [ebx + 0x1349]
shl ecx, 0x13
xor edi, edi
xor ecx, eax
mov edx, dword [ebx + 0xbac]
and ecx, 0x7f80000
and dword [ebx + 0x1268], 0xe1ffffff
xor ecx, eax
mov eax, dword [ebx + 0xa58]
mov dword [esi], ecx
and eax, 0x1f
mov ecx, dword [ebx + 0xa5c]
and ecx, 0x1f
shl ecx, 5
or ecx, eax
mov eax, dword [ebx + 0xa54]
add ecx, ecx
and eax, 1
or ecx, eax
mov eax, dword [ebx + 0x1264]
and eax, 0xff800
or ecx, eax
mov eax, dword [ebx + 0xa60]
mov dword [ebx + 0x1264], ecx
and eax, 1
mov ecx, dword [ebx + 0xa64]
and ecx, 1
add ecx, ecx
or ecx, eax
mov eax, edx
and eax, 0xf
shl ecx, 4
or ecx, eax
mov eax, dword [ebx + 0xbc0]
and eax, 0xf
shl ecx, 4
or ecx, eax
mov eax, dword [ebx + 0x1270]
and eax, 0xffffc000
shl ecx, 4
or ecx, eax
mov eax, dword [ebx + 0xbbc]
and eax, 0xf
or ecx, eax
mov dword [ebx + 0x1270], ecx
test edx, edx
js 0x1037aaca
lea edx, [ebx + 0x12b4]
lea esi, [ebx + 0xa70]
mov eax, dword [esi - 4]
lea edx, [edx + 4]
xor eax, dword [edx - 4]
lea esi, [esi + 0x14]
and eax, 7
inc edi
xor dword [edx - 4], eax
mov ecx, dword [esi - 0x14]
shl ecx, 3
xor ecx, dword [edx - 4]
and ecx, 0xffff8
xor ecx, dword [edx - 4]
mov dword [edx - 4], ecx
mov eax, dword [esi - 0x10]
shl eax, 0x14
xor eax, ecx
and eax, 0x700000
xor eax, ecx
mov dword [edx - 4], eax
mov ecx, dword [esi - 0xc]
shl ecx, 0x17
xor ecx, eax
and ecx, 0x3800000
xor ecx, eax
mov dword [edx - 4], ecx
mov eax, dword [esi - 8]
shl eax, 0x1a
xor eax, ecx
and eax, 0x3c000000
xor eax, ecx
mov dword [edx - 4], eax
cmp edi, dword [ebx + 0xbac]
jle 0x1037aa63
cmp dword [ebx + 0xbbc], 0
mov dword [ebp - 4], 0
jbe 0x1037ab41
lea esi, [ebx + 0x1274]
lea edi, [ebx + 0xbcc]
mov eax, dword [edi - 8]
lea esi, [esi + 4]
xor eax, dword [esi - 4]
lea edi, [edi + 0x14]
and eax, 7
xor dword [esi - 4], eax
mov ecx, dword [edi - 0x14]
shl ecx, 3
xor ecx, dword [esi - 4]
and ecx, 0xffff8
xor ecx, dword [esi - 4]
mov dword [esi - 4], ecx
mov edx, dword [edi - 0xc]
shl edx, 0x18
xor edx, ecx
and edx, 0xf000000
xor edx, ecx
mov dword [esi - 4], edx
mov eax, dword [edi - 0x10]
shl eax, 0x14
xor eax, edx
and eax, 0xf00000
xor eax, edx
mov dword [esi - 4], eax
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp eax, dword [ebx + 0xbbc]
jb 0x1037aae6
cmp dword [ebx + 0xbc0], 0
mov dword [ebp - 4], 0
jbe 0x1037abbb
lea esi, [ebx + 0x1294]
lea edi, [ebx + 0xe4c]
nop dword [eax]
mov eax, dword [edi - 8]
lea esi, [esi + 4]
xor eax, dword [esi - 4]
lea edi, [edi + 0x14]
and eax, 7
xor dword [esi - 4], eax
mov ecx, dword [edi - 0x14]
shl ecx, 3
xor ecx, dword [esi - 4]
and ecx, 0xffff8
xor ecx, dword [esi - 4]
mov dword [esi - 4], ecx
mov edx, dword [edi - 0xc]
shl edx, 0x18
xor edx, ecx
and edx, 0xf000000
xor edx, ecx
mov dword [esi - 4], edx
mov eax, dword [edi - 0x10]
shl eax, 0x14
xor eax, edx
and eax, 0xf00000
xor eax, edx
mov dword [esi - 4], eax
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp eax, dword [ebx + 0xbc0]
jb 0x1037ab60
mov ecx, dword [ebx + 0x16e4]
lea edi, [ebx + 0x1118]
mov eax, dword [ebx + 0x16e8]
and ecx, 3
and eax, 3
shl ecx, 2
or ecx, eax
mov eax, dword [ebx + 0x1700]
and eax, 1
add ecx, ecx
or ecx, eax
mov eax, dword [ebx + 0x16f0]
and eax, 0xf
shl ecx, 0x14
or ecx, eax
mov eax, dword [ebx + 0x16ec]
and eax, 0xf
shl ecx, 4
or ecx, eax
mov eax, dword [ebx + 0x1260]
and eax, 0xe0ffff00
or ecx, eax
mov eax, dword [ebx + 0x170c]
mov dword [ebx + 0x1260], ecx
and eax, 1
mov ecx, dword [ebx + 0x1710]
and ecx, 1
add ecx, ecx
or ecx, eax
mov eax, dword [ebx + 0x1708]
and eax, 1
add ecx, ecx
or ecx, eax
mov eax, dword [ebx + 0x1704]
and eax, 1
add ecx, ecx
or ecx, eax
mov eax, dword [ebx + 0x1268]
and eax, 0xffffffe0
or ecx, eax
lea eax, [ebx + 0x314]
mov dword [ebx + 0x1268], ecx
test edi, edi
je 0x1037ac84
test eax, eax
je 0x1037ac74
mov ecx, 0x30
mov esi, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x1118]
jmp 0x1037ac9a
push 0xc0
push 0
push edi
call fcn.10425c00
add esp, 0xc
call fcn.1043a2d6
mov dword [eax], 0x16
call fcn.1043a1d8
lea eax, [ebx + 0x314]
cmp byte [ebx + 0x4cb], 0
jne 0x1037acd2
test dword [eax], 0x8000
je 0x1037accb
mov eax, dword [edi]
and dword [edi + 4], 0xfffffffe
and eax, 0xfc07ffff
and dword [edi + 0x14], 0xffc3ffff
or eax, 0x40008000
and dword [edi + 0xc], 0xfff5ffff
mov dword [edi], eax
cmp byte [ebx + 0x4cb], 0
mov esi, dword [ebp + 0x10]
jne 0x1037ad2e
movzx eax, byte [ebx + 0x4f1]
mov ecx, ebx
push esi
push eax
push dword [ebx + 0x1110]
push edi
call fcn.1037c6c0
mov eax, dword [edi + 0x90]
and eax, 0xfffffdff
mov dword [edi + 0x90], eax
mov ecx, dword [ebx + 0x1110]
cmp ecx, 0x14
jbe 0x1037ad17
cmp ecx, 0x64
jae 0x1037ad13
test esi, esi
jne 0x1037ad17
xor ecx, ecx
jmp 0x1037ad1c
mov ecx, 0x400
and eax, 0xfffffbff
or eax, ecx
and eax, 0xfffe07ff
mov dword [edi + 0x90], eax
push esi
push dword [ebp + 0xc]
lea eax, [ebx + 0x11d8]
mov ecx, ebx
push dword [ebp + 8]
push eax
call fcn.1037d160
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0xc