Function at 0x100bae4f
Capabilities:
Encode data using xor

Disassembly:
push 0x154
mov eax, 0x101ab8c7
call fcn.1017516e
mov esi, ecx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x150]
push eax
mov dword [ebp - 0x160], ebx
call fcn.10016a0b
xor eax, eax
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], eax
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x15c]
cmp dword [esi + 8], 2
push dword [ebp - 0x160]
jbe 0x100baea3
mov eax, dword [esi + 4]
jmp 0x100baea6
mov eax, dword [esi + 0xc]
push eax
push dword [eax]
push dword [ebp - 0x158]
call fcn.100bc0d1
push dword [ebp - 0x160]
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x15c]
sub eax, ecx
push 0x18
cdq
pop esi
idiv esi
mov edx, dword [ebp - 0x158]
push eax
call fcn.100bcb51
mov dword [ebp - 0x4c], 0x3c
mov eax, dword [ebp - 0x4c]
xor eax, 0x7b
mov byte [ebp - 0x48], al
mov eax, dword [ebp - 0x4c]
inc al
pop ecx
pop ecx
push 0x43
pop edi
xor eax, edi
mov byte [ebp - 0x47], al
mov eax, dword [ebp - 0x4c]
add al, 2
xor eax, 0x42
mov byte [ebp - 0x46], al
mov eax, dword [ebp - 0x4c]
add al, 3
xor eax, 0x45
mov byte [ebp - 0x45], al
mov eax, dword [ebp - 0x4c]
add al, 4
xor eax, 0x38
mov byte [ebp - 0x44], al
mov eax, dword [ebp - 0x4c]
add al, 5
xor eax, 0x32
mov byte [ebp - 0x43], al
mov eax, dword [ebp - 0x4c]
add al, 6
push 0x35
pop ecx
xor eax, ecx
mov byte [ebp - 0x42], al
mov eax, dword [ebp - 0x4c]
add al, 7
xor eax, 0x30
mov byte [ebp - 0x41], al
mov eax, dword [ebp - 0x4c]
add al, 8
xor eax, edi
mov byte [ebp - 0x40], al
mov eax, dword [ebp - 0x4c]
add al, 9
push 0x2d
pop edx
xor eax, edx
mov byte [ebp - 0x3f], al
mov eax, dword [ebp - 0x4c]
add al, 0xa
xor eax, edi
mov byte [ebp - 0x3e], al
mov eax, dword [ebp - 0x4c]
add al, 0xb
xor eax, 0x34
mov byte [ebp - 0x3d], al
mov eax, dword [ebp - 0x4c]
add al, 0xc
xor eax, 0x39
mov byte [ebp - 0x3c], al
mov eax, dword [ebp - 0x4c]
add al, 0xd
xor eax, 0x46
mov byte [ebp - 0x3b], al
mov eax, dword [ebp - 0x4c]
add al, 0xe
xor eax, edx
mov byte [ebp - 0x3a], al
mov eax, dword [ebp - 0x4c]
add al, 0xf
xor eax, 0x34
mov byte [ebp - 0x39], al
mov eax, dword [ebp - 0x4c]
add al, 0x10
xor eax, ecx
mov byte [ebp - 0x38], al
mov eax, dword [ebp - 0x4c]
add al, 0x11
xor eax, 0x46
mov byte [ebp - 0x37], al
mov eax, dword [ebp - 0x4c]
add al, 0x12
xor eax, 0x41
mov byte [ebp - 0x36], al
mov eax, dword [ebp - 0x4c]
add al, 0x13
xor eax, edx
mov byte [ebp - 0x35], al
mov eax, dword [ebp - 0x4c]
add al, 0x14
xor eax, 0x38
mov byte [ebp - 0x34], al
mov eax, dword [ebp - 0x4c]
add al, 0x15
xor eax, 0x39
mov byte [ebp - 0x33], al
mov eax, dword [ebp - 0x4c]
add al, 0x16
xor eax, ecx
mov byte [ebp - 0x32], al
mov eax, dword [ebp - 0x4c]
add al, 0x17
xor eax, 0x30
mov byte [ebp - 0x31], al
mov eax, dword [ebp - 0x4c]
add al, 0x18
xor eax, edx
mov byte [ebp - 0x30], al
mov eax, dword [ebp - 0x4c]
add al, 0x19
xor eax, 0x34
mov byte [ebp - 0x2f], al
mov eax, dword [ebp - 0x4c]
add al, 0x1a
xor eax, edi
mov byte [ebp - 0x2e], al
mov eax, dword [ebp - 0x4c]
add al, 0x1b
xor eax, edi
mov byte [ebp - 0x2d], al
mov eax, dword [ebp - 0x4c]
add al, 0x1c
xor eax, edi
mov byte [ebp - 0x2c], al
mov eax, dword [ebp - 0x4c]
add al, 0x1d
xor eax, 0x46
mov byte [ebp - 0x2b], al
mov eax, dword [ebp - 0x4c]
add al, 0x1e
xor eax, 0x36
mov byte [ebp - 0x2a], al
mov eax, dword [ebp - 0x4c]
add al, 0x1f
xor eax, edi
mov byte [ebp - 0x29], al
mov eax, dword [ebp - 0x4c]
add al, 0x20
xor eax, 0x33
mov byte [ebp - 0x28], al
mov eax, dword [ebp - 0x4c]
add al, 0x21
xor eax, 0x31
mov byte [ebp - 0x27], al
mov eax, dword [ebp - 0x4c]
add al, 0x22
xor eax, 0x33
mov byte [ebp - 0x26], al
mov eax, dword [ebp - 0x4c]
add al, 0x23
xor eax, ecx
mov byte [ebp - 0x25], al
mov eax, dword [ebp - 0x4c]
add al, 0x24
xor eax, 0x39
mov byte [ebp - 0x24], al
mov eax, dword [ebp - 0x4c]
add al, 0x25
mov byte [ebp - 0x22], 0
xor eax, 0x7d
xor edx, edx
mov byte [ebp - 0x23], al
mov al, byte [ebp - 0x48]
mov al, byte [ebp + edx - 0x48]
mov ecx, dword [ebp - 0x4c]
add cl, dl
movsx eax, al
xor ecx, eax
mov byte [ebp + edx - 0x48], cl
inc edx
cmp edx, 0x26
jb 0x100bb086
lea esi, [ebp - 0x48]
mov byte [ebp - 0x22], 0
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x100bb0a8
mov dword [ebp - 0x78], 0x10
sub esi, ecx
mov eax, dword [ebp - 0x78]
xor eax, 0x7b
mov byte [ebp - 0x74], al
mov eax, dword [ebp - 0x78]
inc al
xor eax, edi
mov byte [ebp - 0x73], al
mov eax, dword [ebp - 0x78]
add al, 2
xor eax, 0x42
mov byte [ebp - 0x72], al
mov eax, dword [ebp - 0x78]
add al, 3
xor eax, 0x45
mov byte [ebp - 0x71], al
mov eax, dword [ebp - 0x78]
add al, 4
xor eax, 0x38
mov byte [ebp - 0x70], al
mov eax, dword [ebp - 0x78]
add al, 5
xor eax, 0x32
mov byte [ebp - 0x6f], al
mov eax, dword [ebp - 0x78]
add al, 6
push 0x35
pop ecx
xor eax, ecx
mov byte [ebp - 0x6e], al
mov eax, dword [ebp - 0x78]
add al, 7
xor eax, 0x30
mov byte [ebp - 0x6d], al
mov eax, dword [ebp - 0x78]
add al, 8
xor eax, edi
mov byte [ebp - 0x6c], al
mov eax, dword [ebp - 0x78]
add al, 9
push 0x2d
pop edx
xor eax, edx
mov byte [ebp - 0x6b], al
mov eax, dword [ebp - 0x78]
add al, 0xa
xor eax, edi
mov byte [ebp - 0x6a], al
mov eax, dword [ebp - 0x78]
add al, 0xb
xor eax, 0x34
mov byte [ebp - 0x69], al
mov eax, dword [ebp - 0x78]
add al, 0xc
xor eax, 0x39
mov byte [ebp - 0x68], al
mov eax, dword [ebp - 0x78]
add al, 0xd
xor eax, 0x46
mov byte [ebp - 0x67], al
mov eax, dword [ebp - 0x78]
add al, 0xe
xor eax, edx
mov byte [ebp - 0x66], al
mov eax, dword [ebp - 0x78]
add al, 0xf
xor eax, 0x34
mov byte [ebp - 0x65], al
mov eax, dword [ebp - 0x78]
add al, 0x10
xor eax, ecx
mov byte [ebp - 0x64], al
mov eax, dword [ebp - 0x78]
add al, 0x11
xor eax, 0x46
mov byte [ebp - 0x63], al
mov eax, dword [ebp - 0x78]
add al, 0x12
xor eax, 0x41
mov byte [ebp - 0x62], al
mov eax, dword [ebp - 0x78]
add al, 0x13
xor eax, edx
mov byte [ebp - 0x61], al
mov eax, dword [ebp - 0x78]
add al, 0x14
xor eax, 0x38
mov byte [ebp - 0x60], al
mov eax, dword [ebp - 0x78]
add al, 0x15
xor eax, 0x39
mov byte [ebp - 0x5f], al
mov eax, dword [ebp - 0x78]
add al, 0x16
xor eax, ecx
mov byte [ebp - 0x5e], al
mov eax, dword [ebp - 0x78]
add al, 0x17
xor eax, 0x30
mov byte [ebp - 0x5d], al
mov eax, dword [ebp - 0x78]
add al, 0x18
xor eax, edx
mov byte [ebp - 0x5c], al
mov eax, dword [ebp - 0x78]
add al, 0x19
xor eax, 0x34
mov byte [ebp - 0x5b], al
mov eax, dword [ebp - 0x78]
add al, 0x1a
xor eax, edi
mov byte [ebp - 0x5a], al
mov eax, dword [ebp - 0x78]
add al, 0x1b
xor eax, edi
mov byte [ebp - 0x59], al
mov eax, dword [ebp - 0x78]
add al, 0x1c
xor eax, edi
mov byte [ebp - 0x58], al
mov eax, dword [ebp - 0x78]
add al, 0x1d
xor eax, 0x46
mov byte [ebp - 0x57], al
mov eax, dword [ebp - 0x78]
add al, 0x1e
xor eax, 0x36
mov byte [ebp - 0x56], al
mov eax, dword [ebp - 0x78]
add al, 0x1f
xor eax, edi
mov byte [ebp - 0x55], al
mov eax, dword [ebp - 0x78]
add al, 0x20
xor eax, 0x33
mov byte [ebp - 0x54], al
mov eax, dword [ebp - 0x78]
add al, 0x21
xor eax, 0x31
mov byte [ebp - 0x53], al
mov eax, dword [ebp - 0x78]
add al, 0x22
xor eax, 0x33
mov byte [ebp - 0x52], al
mov eax, dword [ebp - 0x78]
add al, 0x23
xor eax, ecx
mov byte [ebp - 0x51], al
mov eax, dword [ebp - 0x78]
add al, 0x24
xor eax, 0x39
mov byte [ebp - 0x50], al
mov eax, dword [ebp - 0x78]
add al, 0x25
mov byte [ebp - 0x4e], 0
xor eax, 0x7d
xor edx, edx
mov byte [ebp - 0x4f], al
mov al, byte [ebp - 0x74]
mov al, byte [ebp + edx - 0x74]
mov ecx, dword [ebp - 0x78]
add cl, dl
movsx eax, al
xor ecx, eax
mov byte [ebp + edx - 0x74], cl
inc edx
cmp edx, 0x26
jb 0x100bb258
push esi
lea eax, [ebp - 0x74]
mov byte [ebp - 0x4e], 0
push eax
lea eax, [ebp - 0x150]
push eax
call fcn.10109ba0
mov edi, dword [ebp - 0x158]
add esp, 0xc
mov esi, dword [ebp - 0x15c]
cmp esi, edi
je 0x100bb2c7
push 0x18
pop ebx
cmp dword [esi + 0x14], 8
mov ecx, esi
mov eax, dword [esi + 0x10]
jb 0x100bb2a8
mov ecx, dword [esi]
add eax, eax
push eax
push ecx
lea eax, [ebp - 0x150]
push eax
call fcn.10109ba0
add esi, ebx
add esp, 0xc
cmp esi, edi
jne 0x100bb29b
mov ebx, dword [ebp - 0x160]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x150]
push eax
call fcn.10016a3c
mov edi, ebx
lea esi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
or dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x15c]
test esi, esi
je 0x100bb33c
mov edi, dword [ebp - 0x158]
cmp esi, edi
je 0x100bb30e
mov ecx, esi
call fcn.1001701c
push 0x18
pop eax
add esi, eax
cmp esi, edi
jne 0x100bb2f8
mov esi, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x154]
sub eax, esi
push 0x18
pop ecx
cdq
idiv ecx
imul eax, eax, 0x18
push eax
push esi
call fcn.10006a60
xor eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], eax
call fcn.10175118
ret 4