Function at 0x100044b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x1001a024]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov byte [ebp - 0x2d], al
mov byte [ebp - 0x44], al
mov eax, dword [ebp + 0x1c]
push edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xc], 0x494d4e4f
mov word [ebp - 8], 0x524b
call fcn.10002570
movzx ebx, ax
mov esi, 0x9000
add esp, 4
cmp bx, si
jne 0x10004765
mov ax, word [ebp + 0x10]
mov ecx, 0xca31
cmp ax, cx
je 0x10004545
mov ecx, 0xca32
cmp ax, cx
je 0x10004545
mov ecx, 0xca30
cmp ax, cx
jne 0x1000453b
movzx ecx, byte [ebp - 0x2d]
mov esi, dword [0x1002b7cc]
lea ebx, [ecx*4]
mov esi, dword [ebx + esi + 0x1001a7a8]
jmp 0x10004588
mov ebx, 0xe02e
jmp 0x10004789
movzx ebx, byte [ebp - 0x2d]
lea esi, [ebp - 0x3b]
mov eax, dword [0x1002b7cc]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x34], ebx
shl ebx, 2
mov ecx, ebx
lea edi, [eax + 0x1001a7a9]
sub ecx, edx
add edi, ecx
sub esi, edx
mov ecx, 3
nop dword [eax]
mov al, byte [edi + edx]
lea edx, [edx + 1]
xor al, byte [edx - 1]
mov byte [esi + edx - 1], al
sub ecx, 1
jne 0x10004570
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x34]
mov eax, dword [0x1002b7b8]
push dword [ebp - 0x38]
mov di, word [eax + ecx*2 + 0x1001a7a8]
mov eax, dword [0x1002b7b4]
mov word [ebp - 0x1c], di
mov eax, dword [ebx + eax + 0x1001a7a8]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1a], eax
mov eax, dword [0x1002b7bc]
movzx eax, word [eax + ecx*2 + 0x1001a7a8]
mov word [ebp - 0x2c], ax
mov eax, dword [0x1002b7c0]
movzx eax, word [eax + ecx*2 + 0x1001a7a8]
mov word [ebp - 0x2a], ax
mov eax, dword [0x1002b7c4]
mov eax, dword [ebx + eax + 0x1001a7a8]
mov dword [ebp - 0x28], eax
mov eax, dword [0x1002b7c8]
mov eax, dword [ebx + eax + 0x1001a7a8]
mov dword [ebp - 0x24], eax
call fcn.10001fe0
movzx ebx, ax
add esp, 4
mov eax, 0x9000
cmp bx, ax
jne 0x10004760
push dword [ebp - 0x40]
push dword [ebp - 0x38]
call fcn.10002080
movzx ebx, ax
add esp, 8
mov eax, 0x9000
cmp bx, ax
jne 0x10004760
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x38]
call fcn.10003900
movzx ebx, ax
add esp, 8
mov eax, 0x9000
cmp bx, ax
jne 0x10004760
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x40]
push dword [eax]
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x34]
push eax
push 1
push dword [ebp - 0x38]
call fcn.10003560
movzx ebx, ax
add esp, 0x14
mov eax, 0x9000
cmp bx, ax
jne 0x10004760
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x12], eax
mov eax, dword [ebp - 0x40]
mov word [ebp - 0x32], di
mov edi, dword [ebp - 0x38]
mov word [ebp - 0x34], 0
push dword [eax]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x34]
push eax
push 2
push edi
call fcn.10003560
movzx ebx, ax
add esp, 0x14
mov eax, 0x9000
cmp bx, ax
jne 0x10004763
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov ax, word [ebp - 0x18]
mov word [ebp - 0x10], ax
mov al, byte [0x1003b81b]
and al, 0xf0
mov dword [ebp - 0x34], esi
cmp al, 0x10
jne 0x100046db
mov byte [ebp - 0x34], 0xe
jmp 0x100046ef
cmp byte [ebp + 0x18], 0
mov eax, 8
mov ecx, 0xc8
cmovne eax, ecx
mov byte [ebp - 0x34], al
mov esi, dword [ebp - 0x40]
lea eax, [ebp - 0x14]
push dword [esi]
push eax
lea eax, [ebp - 0x34]
push eax
push 3
push edi
call fcn.10003560
movzx ebx, ax
add esp, 0x14
mov eax, 0x9000
cmp bx, ax
jne 0x10004763
mov cl, byte [ebp - 0x2d]
shl cl, 4
cmp byte [ebp + 0x18], 1
jne 0x10004725
or cl, 5
jmp 0x1000473e
mov al, byte [0x1003b81b]
and al, 0xf0
cmp al, 0x10
jne 0x1000473b
or cl, 2
mov dword [esi], 1
jmp 0x1000473e
or cl, 4
push 1
lea eax, [ebp - 0x14]
mov byte [ebp - 0x34], cl
push eax
lea eax, [ebp - 0x34]
push eax
push 4
push edi
call fcn.10003560
add esp, 0x14
movzx ebx, ax
mov esi, 0x9000
jmp 0x10004765
mov edi, dword [ebp - 0x38]
mov esi, eax
mov eax, 0xe02b
cmp bx, ax
jne 0x10004774
lea ebx, [eax - 0xa]
jmp 0x10004789
mov eax, 0xe02c
cmp bx, ax
jne 0x10004783
lea ebx, [eax - 6]
jmp 0x10004789
cmp bx, si
cmove ebx, esi
push 0x1f4
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0
push eax
push 1
lea eax, [ebp - 0xc]
mov dword [0x1002b7b0], 0
push eax
push 1
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 2
push eax
push edi
call fcn.10002b10
push 0
push 1
push 1
push edi
call dword [0x1003c83c]
add esp, 0x2c
cmp bx, si
jne 0x100047e6
push dword [ebp + 0x18]
push 0x1001a7a8
push dword [ebp - 0x44]
push 0x1003b818
call fcn.10002e10
add esp, 0x10
mov ecx, dword [ebp - 4]
pop edi
pop esi
movzx eax, bx
xor ecx, ebp
pop ebx
call fcn.10008cc1
mov esp, ebp
pop ebp
ret