Function at 0x1000145b
Capabilities:
Encode data using xor

Disassembly:
jmp 0x10003e3a
sub esp, 0x14
xor eax, eax
cmp dword [esp + 0x20], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
jbe 0x10004128
push ebx
push ebp
push esi
push edi
mov edi, dword [0x100b8228]
mov eax, dword [0x100b8224]
lea edx, [eax + 1]
imul eax, edi
mov ebx, dword [0x100b8238]
lea eax, [eax + eax - 2]
imul eax, edi
add eax, dword [esp + 0x14]
lea ecx, [edi + 1]
imul edx, ecx
mov ecx, dword [0x100b8230]
lea esi, [ecx + ecx]
sub edx, esi
imul edx, dword [0x100b822c]
mov esi, dword [0x100b8234]
lea ebp, [ebx + esi + 2]
imul ebp, ebx
sub edx, ebp
sub edx, esi
lea eax, [eax + edx*2 + 1]
cdq
mov ebp, 0x62c3
idiv ebp
mov eax, esi
sub eax, edi
dec eax
imul eax, edi
sub eax, 3
imul eax, dword [0x100b822c]
add edx, eax
mov eax, dword [0x100b8224]
mov ebp, eax
imul ebp, ebx
sub edx, ebp
mov ebp, ebx
imul ebp, ebx
sub edx, ebp
mov ebp, eax
imul ebp, esi
sub edx, ebp
add edx, eax
imul eax, dword [0x100b822c]
mov dword [esp + 0x14], edx
imul eax, ecx
mov edx, ebx
imul edx, edx, 3
mov dword [esp + 0x20], edx
mov edx, esi
sub edx, ebx
imul edx, edi
add edx, ebx
lea edx, [edx + ecx + 1]
imul edx, esi
inc eax
inc eax
imul eax, ecx
sub edx, eax
mov eax, dword [0x100b8224]
lea ebp, [eax + 2]
imul ebp, ebx
sub edx, ebp
sub edx, dword [0x100b822c]
mov ebp, 0x62c3
add edx, eax
mov eax, dword [esp + 0x28]
imul edx, edx, 5
add edx, dword [esp + 0x14]
push 2
movzx eax, byte [edx + eax]
add eax, dword [esp + 0x1c]
cdq
idiv ebp
lea eax, [esi + esi]
pop ebp
sub ebp, eax
mov eax, dword [0x100b822c]
imul ebp, ecx
add edx, ebp
lea ebp, [eax + esi + 1]
imul ebp, edi
sub ebp, dword [esp + 0x20]
add ebp, eax
lea edx, [edx + ebp*2]
mov dword [esp + 0x18], edx
mov ebp, dword [esp + 0x14]
mov edx, edi
imul edx, ecx
lea edx, [edx + eax*2]
lea edx, [ebp + edx*2]
mov ebp, dword [esp + 0x28]
mov dl, byte [edx + ebp]
mov byte [esp + 0x13], dl
mov edx, ecx
imul edx, esi
add edx, ebx
imul edx, edx, 3
mov ebx, dword [esp + 0x18]
sub ebx, edx
sub ecx, edi
inc ecx
imul ecx, dword [0x100b8224]
push 3
pop edx
sub edx, dword [esp + 0x20]
add ecx, edi
imul edx, eax
imul ecx, ecx, 3
add ecx, dword [esp + 0x14]
imul edx, esi
mov al, byte [ebx + ebp]
add edx, ecx
mov byte [edx + ebp], al
mov eax, dword [0x100b8228]
imul eax, dword [0x100b8230]
mov ecx, dword [0x100b8238]
shl ecx, 2
sub eax, ecx
sub eax, dword [0x100b8224]
mov ecx, dword [esp + 0x18]
add eax, dword [0x100b822c]
push 2
lea eax, [ecx + eax*2]
mov cl, byte [esp + 0x17]
mov byte [eax + ebp], cl
mov ecx, dword [0x100b8228]
mov esi, dword [0x100b8230]
mov ebx, dword [0x100b8238]
mov edx, ecx
imul edx, esi
pop edi
sub edi, edx
mov edx, edi
mov edi, dword [0x100b822c]
imul edx, edi
mov eax, ebx
imul eax, esi
sub edx, eax
mov eax, dword [esp + 0x1c]
sub edx, ecx
sub edx, esi
add edx, dword [0x100b8234]
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x2c]
add eax, edx
mov edx, ecx
imul edx, ebx
mov dword [esp + 0x20], eax
mov eax, dword [0x100b8234]
imul edx, eax
imul edx, eax
mov eax, dword [0x100b8224]
sub eax, edx
dec eax
dec eax
lea edx, [edi + 2]
imul eax, ebx
imul edx, edi
add eax, edx
mov edx, dword [0x100b8224]
imul edx, ecx
add eax, edx
mov edx, dword [0x100b8224]
imul edx, dword [0x100b8234]
sub eax, esi
imul eax, eax, 5
add eax, dword [esp + 0x18]
movzx eax, byte [eax + ebp]
mov ebp, ecx
sub ebp, edx
mov edx, dword [0x100b8224]
inc ebp
imul ebp, dword [0x100b8234]
add edx, 2
imul edx, ebx
sub ebp, edx
lea edx, [ecx - 2]
imul edx, esi
add ebp, edx
mov edx, dword [esp + 0x28]
sub ebp, ecx
imul ebp, ebp, 3
add ebp, dword [esp + 0x14]
movzx edx, byte [edx + ebp]
add eax, edx
cdq
mov ebp, 0x62c3
idiv ebp
lea eax, [edi + 1]
imul eax, ecx
mov ebp, ebx
sub ebp, eax
mov eax, edi
imul eax, esi
inc ebp
imul ebp, ecx
add ebp, dword [0x100b8224]
inc eax
imul eax, ebx
mov ebx, edi
imul ebx, esi
imul ebx, esi
add eax, ebp
imul ebx, ebx, 3
imul eax, eax, 3
add edx, eax
mov eax, dword [0x100b8234]
add ebx, 4
imul ebx, edi
mov edi, eax
imul edi, edi, 3
lea edi, [ebx + edi - 1]
imul edi, eax
add edi, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
sub ecx, esi
dec ecx
imul ecx, esi
add edi, edx
mov cl, byte [edi + ecx*4]
xor byte [eax], cl
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x30]
jb 0x10003e59
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret