Function at 0x100113e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x278
push 0
push dword [0x1004cdf4]
call fcn.1000c150
add esp, 8
test al, 1
je 0x1001155d
push 0x97d1c801
call fcn.10008470
add esp, 4
xor edi, edi
mov ebx, 0x35fae3d7
push eax
push 0x100467ba
call fcn.10009650
add esp, 8
mov dword [esp + 8], eax
nop
nop
nop
mov esi, dword [esp + 8]
mov dword [esp + 0xc], edi
movzx eax, byte [esi + edi]
mov ecx, eax
mov dword [esp], eax
not cl
and cl, bl
mov byte [esp + 4], cl
push 0xff
push ebx
call fcn.100077e0
add esp, 8
movzx eax, al
push eax
push dword [esp + 4]
call fcn.100073a0
add esp, 8
or al, byte [esp + 4]
mov byte [esi + edi], al
mov esi, ebx
shl esi, 8
push 0x97d1c019
call fcn.10008470
add esp, 4
mov ecx, eax
mov eax, esi
shr ebx, cl
not eax
mov dword [esp + 4], eax
push 0xffffffffffffffff
push ebx
call fcn.10006690
add esp, 8
mov dword [esp], eax
push 0x860d1819
call fcn.10008470
add esp, 4
mov edi, eax
not edi
push 0x860d1819
call fcn.10008470
add esp, 4
and eax, dword [esp + 4]
and esi, edi
or esi, eax
push 0x11dcd818
push dword [esp + 4]
call fcn.100067d0
add esp, 8
and ebx, edi
or ebx, eax
xor ebx, esi
push dword [esp]
push dword [esp + 8]
call fcn.10005680
add esp, 8
mov esi, eax
not esi
push 0x860d1819
call fcn.10008470
add esp, 4
or eax, edi
and eax, esi
or ebx, eax
mov eax, dword [esp + 0xc]
add eax, 0x5d3ba933
push 1
push eax
call fcn.100050e0
add esp, 8
push 0xa2c456cd
push eax
call fcn.100050e0
add esp, 8
mov edi, eax
push 0x800
push eax
call fcn.1000a9a0
add esp, 8
test al, 1
je 0x10011430
push 0
mov esi, dword [esp + 0xc]
push esi
call fcn.10005f60
add esp, 8
mov dword [0x1004cdf4], eax
push esi
call fcn.1002c820
add esp, 4
cmp dword [0x1004cdf4], 0
je 0x10011596
lea eax, [esp + 0x115]
push eax
push str._t_S__aUZJ
call fcn.1000a030
add esp, 8
push eax
push dword [0x1004cdf4]
call fcn.1003bc10
add esp, 8
call eax
mov esi, eax
mov edi, edx
cmp dword [0x1004d0e0], 0
jne 0x1001161d
jmp 0x100115a3
xor esi, esi
xor edi, edi
cmp dword [0x1004d0e0], 0
jne 0x1001161d
mov dword [esp + 4], esi
xor esi, esi
mov ebx, 0x35fae3d7
mov dword [esp], edi
push 0x800
push 0x100467ba
call fcn.10009650
add esp, 8
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor byte [edi + esi], bl
rol ebx, 8
push 1
push esi
call fcn.100050e0
add esp, 8
mov esi, eax
push 0x97d1c801
call fcn.10008470
add esp, 4
cmp esi, eax
jne 0x100115d0
push 0
push edi
call fcn.10005f60
add esp, 8
mov dword [0x1004d0e0], eax
push edi
call fcn.1002c820
add esp, 4
cmp dword [0x1004d0e0], 0
mov esi, dword [esp + 4]
mov edi, dword [esp]
je 0x10011655
lea eax, [esp + 0x123]
push eax
push str._t_S_v_UZJ__N
call fcn.1000a030
add esp, 8
push eax
push dword [0x1004d0e0]
call fcn.1003bc10
add esp, 8
lea ecx, [esp + 0x188]
push 0xe8
push edi
push esi
push ecx
call eax
add esp, 0x10
cmp dword [0x1004c31c], 0
jne 0x10011756
xor edi, edi
mov ebx, 0x35fae3d7
push 0x800
push 0x100467ba
call fcn.10009650
add esp, 8
mov dword [esp + 8], eax
nop
mov eax, dword [esp + 8]
mov esi, ebx
shl esi, 8
xor byte [eax + edi], bl
mov eax, esi
shr ebx, 0x18
not eax
mov dword [esp + 4], eax
mov eax, ebx
not eax
mov dword [esp + 0xc], eax
push 0x83f3ba99
call fcn.10008470
add esp, 4
and eax, dword [esp + 4]
mov dword [esp], eax
push 0xebdd8567
push esi
call fcn.100067d0
add esp, 8
mov edx, dword [esp + 0xc]
or eax, dword [esp]
and ebx, 0x67
mov ecx, edx
and ecx, 0x14227a98
or ebx, ecx
xor eax, ebx
mov dword [esp], eax
push edx
push dword [esp + 8]
call fcn.10005680
add esp, 8
mov esi, eax
not esi
push 0x83f3ba99
call fcn.10008470
add esp, 4
mov ebx, eax
add edi, 0xad028e2f
or ebx, 0xebdd8567
and ebx, esi
or ebx, dword [esp]
push 0xad028e2e
push edi
call fcn.100076e0
add esp, 8
mov edi, eax
push 0x97d1c801
call fcn.10008470
add esp, 4
cmp edi, eax
jne 0x10011680
push 0
mov esi, dword [esp + 0xc]
push esi
call fcn.10005f60
add esp, 8
mov dword [0x1004c31c], eax
push esi
call fcn.1002c820
add esp, 4
cmp dword [0x1004c31c], 0
je 0x10011794
lea eax, [esp + 0xfb]
push eax
push str._t_S_v_UZJ__N
call fcn.1000a030
add esp, 8
push eax
push dword [0x1004c31c]
call fcn.1003bc10
add esp, 8
lea ecx, [esp + 0x28]
push 0x28
push dword [esp + 0x1f0]
push dword [esp + 0x1f0]
push ecx
call eax
add esp, 0x10
cmp dword [0x1004ccfc], 0
jne 0x10011830
push 0x97d1c801
call fcn.10008470
add esp, 4
mov edi, 0x35fae3d7
xor ebx, ebx
push eax
push 0x100467ba
call fcn.10009650
add esp, 8
mov esi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esi + ebx]
push edi
push eax
call fcn.100077e0
add esp, 8
rol edi, 8
mov byte [esi + ebx], al
push edi
push 0
call fcn.10005680
add esp, 8
mov edi, eax
push 1
push ebx
inc ebx
call fcn.100050e0
add esp, 8
push 0x97d1c801
call fcn.10008470
add esp, 4
cmp ebx, eax
jne 0x100117d0
push 0
push esi
call fcn.10005f60
add esp, 8
mov dword [0x1004ccfc], eax
push esi
call fcn.1002c820
add esp, 4
cmp dword [0x1004ccfc], 0
je 0x1001186b
lea eax, [esp + 0x108]
push eax
push str._t_S_v_UZJ__N
call fcn.1000a030
add esp, 8
push eax
push dword [0x1004ccfc]
call fcn.1003bc10
add esp, 8
lea ecx, [esp + 0x148]
push 0x40
push dword [esp + 0x48]
push dword [esp + 0x48]
push ecx
call eax
add esp, 0x10
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
movsd xmm0, qword [esp + 0x158]
add edi, 0x10
movsd qword [esp + 0x60], xmm0
adc edx, 0
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edx
cmp dword [0x1004cdc8], 0
jne 0x10011953
xor edi, edi
mov dword [esp + 4], 0x35fae3d7
push 0x800
push 0x100467ba
call fcn.10009650
add esp, 8
mov dword [esp], eax
nop
nop
nop
nop
mov esi, dword [esp]
movzx ebx, byte [esi + edi]
mov bh, bl
not bh
push 3
call fcn.10009090
add esp, 4
and al, bh
and bl, 0xfd
or bl, al
xor bl, byte [esp + 4]
xor bl, 2
mov byte [esi + edi], bl
push 0x97d1c009
call fcn.10008470
add esp, 4
mov edx, dword [esp + 4]
mov ecx, eax
mov ebx, edx
shr edx, 0x18
shl ebx, cl
push edx
mov esi, edx
push ebx
call fcn.100067d0
add esp, 8
xor esi, ebx
neg edi
or esi, eax
mov dword [esp + 4], esi
push 0xffffffffffffffff
push edi
call fcn.100050e0
add esp, 8
mov edi, eax
neg edi
cmp edi, 0x800
jne 0x100118c0
push 0
mov esi, dword [esp + 4]
push esi
call fcn.10005f60
add esp, 8
mov dword [0x1004cdc8], eax
push esi
call fcn.1002c820
add esp, 4
cmp dword [0x1004cdc8], 0
je 0x1001198b
lea eax, [esp + 0x54]
push eax
push str._t_S_v_UZJ__N
call fcn.1000a030
add esp, 8
push eax
push dword [0x1004cdc8]
call fcn.1003bc10
add esp, 8
push 0x98
push dword [esp + 0x68]
push dword [esp + 0x68]
lea ecx, [esp + 0x6c]
push ecx
call eax
add esp, 0x10
movzx eax, word [esp + 0xba]
push eax
call fcn.10022000
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
je 0x10011b62
lea eax, [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
call fcn.100414c0
cmp dword [0x1004c1b8], 0
jne 0x10011ad4
mov ebx, 0x35fae3d7
xor esi, esi
push 0x800
push 0x100467ba
call fcn.10009650
add esp, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
xor byte [eax + esi], bl
push 0x97d1c009
call fcn.10008470
add esp, 4
mov edx, ebx
mov ecx, eax
shl ebx, cl
shr edx, 0x18
mov edi, ebx
mov eax, edx
mov dword [esp + 0xc], edx
not edi
not eax
mov dword [esp + 8], edi
mov dword [esp + 4], eax
push 0xffffffffffffffff
push 0x7d85ea4a
call fcn.10006690
add esp, 8
mov dword [esp], eax
push 0xea542a4b
call fcn.10008470
add esp, 4
mov ecx, dword [esp]
and eax, edi
mov edi, dword [esp + 4]
and ebx, ecx
and edi, 0x7d85ea4a
or ebx, eax
push ecx
push dword [esp + 0x10]
call fcn.100067d0
add esp, 8
or eax, edi
xor eax, ebx
mov edi, eax
mov eax, dword [esp + 4]
or eax, dword [esp + 8]
push 0xffffffffffffffff
push eax
call fcn.10006690
add esp, 8
mov ebx, eax
push 0xea542a4b
call fcn.10008470
add esp, 4
or eax, dword [esp]
push eax
push ebx
call fcn.100067d0
add esp, 8
push eax
push edi
call fcn.10005680
add esp, 8
mov ebx, eax
neg esi
push 0xffffffffffffffff
push esi
call fcn.100050e0
add esp, 8
mov esi, eax
neg esi
cmp esi, 0x800
jne 0x100119e0
push 0
mov esi, dword [esp + 0x18]
push esi
call fcn.10005f60
add esp, 8
mov dword [0x1004c1b8], eax
push esi
call fcn.1002c820
add esp, 4
cmp dword [0x1004c1b8], 0
je 0x10011b18
lea eax, [esp + 0x135]
push eax
push str._t_S_v_UZJ__N
call fcn.1000a030
add esp, 8
push eax
push dword [0x1004c1b8]
call fcn.1003bc10
add esp, 8
movzx ecx, word [esp + 0xba]
push ecx
push dword [esp + 0xc8]
push dword [esp + 0xc8]
push dword [esp + 0x1c]
call eax
add esp, 0x10
push dword [esp + 0x10]
push dword [ebp + 8]
call fcn.1002d740
add esp, 8
mov edi, dword [esp + 0x90]
mov ebx, dword [esp + 0x94]
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.100438d0
test esi, esi
je 0x10011b66
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x18]
xor eax, edi
xor ecx, edx
or ecx, eax
jne 0x10011890
jmp 0x10011b68
xor ebx, ebx
xor edi, edi
mov edx, ebx
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret