Function at 0x10015920
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x90
mov eax, dword [0x10114d18]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [ebp + 0x1c], 0
je 0x1001595a
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.10018d70
add esp, 0xc
xor al, al
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100858b1
mov esp, ebp
pop ebp
ret
push ebx
push esi
push edi
push 1
call fcn.1001a5d0
mov ebx, dword [ebp + 0x10]
add esp, 4
cmp byte [0x1012c6fa], 0
jne 0x10015bd7
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
movzx eax, bx
movzx ecx, ax
mov dword [ebp - 0x78], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x88], ecx
push ecx
push eax
push dword [ebp + 8]
call fcn.10018d70
add esp, 0xc
push 0x3e8
call edi
movzx eax, word [0x1012c714]
cmp ebx, eax
je 0x10015a85
xor esi, esi
nop dword [eax]
push 0x7d0
call edi
mov dword [ebp - 0x5c], 0x74
mov byte [ebp - 0x58], 0x46
mov byte [ebp - 0x57], 0x44
mov byte [ebp - 0x56], 0x45
mov byte [ebp - 0x55], 0x43
mov byte [ebp - 0x54], 0x40
mov byte [ebp - 0x53], 0x45
mov byte [ebp - 0x52], 0x43
mov byte [ebp - 0x51], 0x42
mov al, byte [ebp - 0x58]
mov byte [ebp - 0x50], 0
xor eax, eax
mov cl, byte [ebp + eax - 0x58]
mov edx, dword [ebp - 0x5c]
xor dl, cl
mov byte [ebp + eax - 0x58], dl
inc eax
cmp eax, 8
jb 0x100159f7
mov byte [ebp - 0x50], 0
mov eax, dword [ebp - 0x5c]
mov byte [ebp - 0x90], al
lea eax, [ebp - 0x90]
push eax
push str._with_key_0x
push 0
push str.____Select_MetaString4_implementation_
push 0x1012ca98
mov dword [ebp - 0x8c], 2
call fcn.10002460
add esp, 8
mov ecx, eax
call fcn.10003830
push eax
call fcn.10002460
add esp, 8
push eax
call fcn.10007300
push eax
call fcn.10002840
add esp, 0xc
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.SHLWAPI.dll_StrToIntA]
movzx eax, word [eax]
cmp eax, ebx
je 0x10015a7b
inc esi
cmp esi, 0x1e
jl 0x100159c0
push 0x3e8
call edi
mov esi, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.10012ae0
mov eax, dword [ebp + 8]
add esp, 0xc
cmp dword [ebp - 0x80], eax
mov eax, dword [ebp + 0xc]
jne 0x10015aba
cmp dword [ebp - 0x84], eax
jne 0x10015aba
movzx eax, word [ebp - 0x70]
cmp eax, ebx
je 0x10015acd
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x88]
inc esi
mov dword [ebp - 0x74], esi
cmp esi, 0x6f
jl 0x10015994
push 1
call fcn.10015d30
add esp, 4
push 0xc8
call edi
push 1
call fcn.10015f80
add esp, 4
push 0xc8
call edi
push dword [ebp - 0x78]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.10018d70
mov ebx, dword [ebp + 0x14]
add esp, 0xc
xor esi, esi
nop word [eax + eax]
push 0x1e
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x4c], 0x900000
push eax
mov dword [ebp - 0x48], 0x10018
mov dword [ebp - 0x44], 0
mov word [ebp - 0x40], 0
mov dword [ebp - 0x3a], 0
mov dword [ebp - 0x36], 0
mov dword [ebp - 0x32], 0
mov dword [ebp - 0x2e], 0
mov dword [ebp - 0x2a], 0
mov dword [ebp - 0x26], 0
mov dword [ebp - 0x22], 0
mov dword [ebp - 0x1e], 0
mov dword [ebp - 0x1a], 0
mov dword [ebp - 0x16], 0
mov dword [ebp - 0x12], 0
mov dword [ebp - 0xe], 0
mov dword [ebp - 0xa], 0
mov word [ebp - 6], 0
mov dword [ebp - 0x3e], ebx
call fcn.10019560
push 0x7d0
call edi
push dword [ebp + 0x18]
push ebx
call fcn.10015870
add esp, 8
push 0x7d0
call edi
call fcn.10013b00
test al, al
jne 0x10015d03
push 0x1f4
call edi
inc esi
cmp esi, 0xb
jl 0x10015b10
jmp 0x10015d03
push ebx
push 0xc3e40000
push 0x44ddc000
call fcn.10018d70
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 0xc
xor edi, edi
push 0x7d0
call esi
mov dword [ebp - 0x6c], 0x4e
xor edx, edx
mov byte [ebp - 0x68], 0x7c
mov byte [ebp - 0x67], 0x7e
mov byte [ebp - 0x66], 0x7f
mov byte [ebp - 0x65], 0x79
mov byte [ebp - 0x64], 0x7a
mov byte [ebp - 0x63], 0x7f
mov byte [ebp - 0x62], 0x79
mov byte [ebp - 0x61], 0x78
mov al, byte [ebp - 0x68]
mov byte [ebp - 0x60], 0
nop dword [eax]
mov al, byte [ebp + edx - 0x68]
mov ecx, dword [ebp - 0x6c]
xor cl, al
mov byte [ebp + edx - 0x68], cl
inc edx
cmp edx, 8
jb 0x10015c30
mov byte [ebp - 0x60], 0
mov eax, dword [ebp - 0x6c]
mov byte [ebp - 0x7c], al
lea eax, [ebp - 0x7c]
push eax
push str._with_key_0x
push 0
push str.____Select_MetaString4_implementation_
push 0x1012ca98
mov dword [ebp - 0x78], 2
call fcn.10002460
add esp, 8
mov ecx, eax
call fcn.10003830
push eax
call fcn.10002460
add esp, 8
push eax
call fcn.10007300
push eax
call fcn.10002840
add esp, 0xc
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.SHLWAPI.dll_StrToIntA]
movzx eax, word [eax]
cmp eax, ebx
je 0x10015cab
inc edi
cmp edi, 0x1e
jl 0x10015bf2
push 0x3e8
call esi
mov ebx, dword [ebp + 0x14]
xor edi, edi
push 0xa
call esi
push 0x1d
call fcn.10012e20
push 0
call fcn.10012e20
add esp, 8
push 0x1388
call esi
push 0x7d0
call esi
push dword [ebp + 0x18]
push ebx
call fcn.10015870
add esp, 8
push 0x7d0
call esi
call fcn.10013b00
test al, al
jne 0x10015d03
push 0x1f4
call esi
inc edi
cmp edi, 0xb
jl 0x10015cb7
push 0
mov byte [0x10113094], bl
call fcn.1001a5d0
mov ecx, dword [ebp - 4]
add esp, 4
mov al, bl
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.100858b1
mov esp, ebp
pop ebp
ret