Function at 0x10009f1c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov edx, dword [ebp + 0x10]
push ebx
push esi
lea esi, [eax + 0x30d]
mov ecx, eax
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x14], esi
cmp eax, esi
ja case.0x1000a073.4786
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
cmp ecx, 0x1196
ja 0x1000a05b
je 0x10009f43
lea eax, [ecx - 0x10c1]
cmp eax, 0x8e
ja case.0x1000a073.4574
movzx eax, byte [eax + 0x1000a168]
jmp dword [eax*4 + 0x1000a154]
cmp dword [edx], 0
je 0x10009cb0
mov edi, edi
mov ebx, dword [ebp + 8]
test bl, 3
je case.0x1000a073.4574
mov ecx, 0x303e
mov eax, ecx
sub eax, 0x303e
je 0x10009c83
sub eax, 0x56
jne 0x10009c98
dec dword [edx]
jmp 0x10009c98
movzx eax, byte [ebx]
xor eax, esi
and eax, 0xff
shr esi, 8
xor esi, dword [eax*4 + 0x1006eb80]
inc ebx
add ecx, 0x56
cmp ecx, 0x3094
jbe 0x10009c71
cmp dword [edx], 0
mov dword [ebp + 8], ebx
jne 0x10009c60
jmp case.0x1000a073.4574
mov ebx, dword [ebp + 8]
jmp case.0x1000a073.4574
not esi
jmp case.0x1000a073.4574
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x14]
mov esi, dword [ecx]
jmp case.0x1000a073.4574
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
test ecx, ecx
jne 0x10009d34
mov edi, 0x2097
mov dword [ebp - 8], edi
lea ecx, [ecx]
mov ecx, edi
sub ecx, 0x2097
je 0x10009d09
sub ecx, 0x40
je 0x10009d03
sub ecx, 0x40
jne 0x10009d21
dec ebp
invalid
mov byte [ebp - 4], 0
jmp 0x10009d21
mov edi, dword [ebp + 0xc]
mov ecx, edi
call fcn.10030df0
call fcn.10032800
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 8]
mov edx, dword [ebp + 0x10]
add edi, 0x40
mov dword [ebp - 8], edi
cmp edi, 0x2117
jbe 0x10009ce0
jmp case.0x1000a073.4574
cmp ecx, 3
jne 0x10009d90
mov edi, 0x3cce
mov edi, edi
mov ecx, edi
sub ecx, 0x3cce
je 0x10009d60
sub ecx, 0x12
je 0x10009d5a
sub ecx, 0x12
je case.0x1000a073.4786
jmp 0x10009d80
mov byte [ebp - 4], 1
jmp 0x10009d80
mov edx, dword [ebp + 0xc]
push eax
push edx
call fcn.10031930
add esp, 4
push eax
mov eax, dword [ebp + 0xc]
push eax
call fcn.1002ae90
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
add esp, 0xc
add edi, 0x12
cmp edi, 0x3cf2
jbe 0x10009d40
jmp case.0x1000a073.4574
cmp ecx, 4
jne 0x10009dda
mov ecx, 0x1cfe
mov dword [ebp - 8], ecx
mov eax, ecx
sub eax, 0x1cfe
je 0x10009db9
sub eax, 0x56
jne 0x10009dc7
mov byte [ebp - 4], 1
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0xc]
call fcn.10032800
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 0x10]
add ecx, 0x56
mov dword [ebp - 8], ecx
cmp ecx, 0x1d54
jbe 0x10009d9d
jmp case.0x1000a073.4574
push 0
push 1
push eax
call fcn.10035b00
add esp, 0xc
test al, al
je 0x10009e45
xor edi, edi
lea ecx, [ecx]
cmp edi, 0x66
ja case.0x10009dfc.1
movzx ecx, byte [edi + 0x1000a20c]
jmp dword [ecx*4 + 0x1000a1f8]
mov byte [ebp - 4], 1
jmp case.0x10009dfc.1
mov edx, dword [ebp + 0xc]
push 2
push edx
call fcn.100225f0
add esp, 8
jmp case.0x10009dfc.1
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
call fcn.1002b790
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov dword [edx + 4], eax
add edi, 0x22
lea eax, [edi + 0x3fc9]
cmp eax, 0x402f
jbe 0x10009df0
mov edx, dword [ebp + 0x10]
jmp case.0x1000a073.4574
mov eax, dword [ebp + 8]
cmp dword [eax], 2
jne 0x10009ec8
push 0x96
push 0x42
push 0
push 0xa
push 1
push 0
call fcn.1000b260
add esp, 0x18
test al, al
jne 0x10009ec8
mov ecx, 0x6645
mov dword [ebp - 8], ecx
mov eax, ecx
sub eax, 0x6645
je 0x10009e98
sub eax, 0x1b
je 0x10009e92
sub eax, 0x1b
jne 0x10009eb2
adc ch, bl
pop ecx
inc ebx
adc byte [ebx + 0x5e5ffc45], cl
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ebp - 4], 0
jmp 0x10009eb2
invalid
add ecx, 0x1b
mov dword [ebp - 8], ecx
rcr dword [ebx], 0x89
dec ebp
clc
cmp ecx, 0x667b
jbe 0x10009e70
mov edx, dword [ebp + 0x10]
jmp case.0x1000a073.4574
mov edi, dword [ebp + 0xc]
mov dword [ebp - 8], 0
mov eax, dword [ebp - 8]
cmp eax, 0x58
ja case.0x10009ee1.1
movzx ecx, byte [eax + 0x1000a288]
jmp dword [ecx*4 + 0x1000a274]
push 8
push 0
mov eax, edi
call fcn.1000aef0
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
add esp, 8
jmp case.0x10009ee1.1
lahf
scasb al, byte es:[edi]
pop ecx
loope 0x10009eb3
mov edx, dword [edi + 4]
mov eax, dword [ebp - 0x10]
push 2
push edi
mov dword [edx + 4], eax
call fcn.100225f0
mov eax, dword [ebp - 8]
add esp, 8
jmp case.0x10009ee1.1
mov ecx, dword [edi + 0xc]
mov byte [ecx + 0x34], 1
mov byte [ebp - 4], 1
add eax, 0x16
lea edx, [eax + 0x6023]
mov dword [ebp - 8], eax
cmp edx, 0x607b
jbe 0x10009ed5
mov edx, dword [ebp + 0x10]
jmp case.0x1000a073.4574
cmp dword [edx], 0x20
jb case.0x1000a073.4574
mov ecx, 0x455
cmp ecx, 0x5b3
ja 0x10009fce
je 0x10009f7b
cmp ecx, 0x4e1
ja 0x10009fc5
je 0x1000a000
mov eax, ecx
sub eax, 0x455
je 0x10009fbe
sub eax, 0x46
jne 0x1000a03e
mov eax, esi
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x1006ef80]
mov edi, esi
shr edi, 8
and edi, 0xff
xor eax, dword [edi*4 + 0x1006f380]
mov edi, esi
shr edi, 0x18
xor eax, dword [edi*4 + 0x1006eb80]
and esi, 0xff
xor eax, dword [esi*4 + 0x1006f780]
xor eax, dword [ebx]
add ebx, 4
jmp 0x1000a03c
xor esi, dword [ebx]
add ebx, 4
jmp 0x1000a03e
mov eax, ecx
sub eax, 0x527
jmp 0x10009f70
cmp ecx, 0x685
ja 0x10009fe8
je 0x10009ffb
mov eax, ecx
sub eax, 0x5f9
je 0x10009f7b
sub eax, 0x46
jne 0x1000a03e
jmp 0x1000a000
mov eax, ecx
sub eax, 0x6cb
je 0x10009ffb
sub eax, 0x46
jne 0x1000a03e
add dword [edx], 0xffffffe0
jmp 0x1000a03e
xor esi, dword [ebx]
add ebx, 4
mov eax, esi
shr eax, 0x10
mov edi, esi
shr edi, 8
and eax, 0xff
mov eax, dword [eax*4 + 0x1006ef80]
and edi, 0xff
xor eax, dword [edi*4 + 0x1006f380]
mov edi, esi
shr edi, 0x18
xor eax, dword [edi*4 + 0x1006eb80]
and esi, 0xff
xor eax, dword [esi*4 + 0x1006f780]
mov esi, eax
add ecx, 0x46
cmp ecx, 0x711
jbe 0x10009f51
cmp dword [edx], 0x20
jae 0x10009f4c
jmp case.0x1000a073.4574
lea eax, [ecx - 0x11dd]
cmp eax, 0xd5
ja case.0x1000a073.4574
movzx ecx, byte [eax + 0x1000a2f8]
jmp dword [ecx*4 + 0x1000a2e4]
cmp dword [edx], 4
jb 0x1000a0e6
mov ecx, 0x7e0e
mov eax, ecx
sub eax, 0x7e0e
je 0x1000a095
dec eax
jne 0x1000a0d8
add dword [edx], 0xfffffffc
jmp 0x1000a0d8
xor esi, dword [ebx]
add ebx, 4
mov eax, esi
shr eax, 0x10
mov edi, esi
and eax, 0xff
mov eax, dword [eax*4 + 0x1006ef80]
shr edi, 8
and edi, 0xff
xor eax, dword [edi*4 + 0x1006f380]
mov edi, esi
shr edi, 0x18
xor eax, dword [edi*4 + 0x1006eb80]
and esi, 0xff
xor eax, dword [esi*4 + 0x1006f780]
mov esi, eax
inc ecx
cmp ecx, 0x7e0f
jbe 0x1000a084
cmp dword [edx], 4
jae 0x1000a07f
mov dword [ebp + 8], ebx
jmp case.0x1000a073.4574
cmp dword [edx], 0
je case.0x1000a073.4574
mov eax, dword [ebp + 8]
movzx ecx, byte [eax]
xor ecx, esi
and ecx, 0xff
shr esi, 8
xor esi, dword [ecx*4 + 0x1006eb80]
inc eax
dec dword [edx]
mov dword [ebp + 8], eax
jne 0x1000a0f0
jmp case.0x1000a073.4574
not esi
mov dword [ebp - 4], esi
mov ecx, dword [ebp - 0xc]
add ecx, 0x47
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jbe 0x10009c28
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esp, 0xf4d0738b
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ss, edx
cmp eax, 0x458bbbf8
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret