Function at 0x10099e30
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 8]
push ebx
push ebp
push esi
mov eax, dword [ecx]
push edi
cmp eax, 0xe860
jne 0x1009a134
cmp dword [ecx + 4], 0xeb5d0000
jne 0x1009a134
cmp word [ecx + 8], 0x6600
jne 0x1009a134
cmp byte [ecx + 0xa], 0xb8
jne 0x1009a134
cmp byte [ecx + 0xd], 0xbe
jne 0x1009a134
cmp dword [ecx + 0x12], 0x43000eb
jne 0x1009a134
cmp dword [ecx + 0x16], 0x46c4022e
jne 0x1009a134
cmp word [ecx + 0x1a], 0xfe81
jne 0x1009a134
cmp dword [ecx + 0x20], 0xebf275
jne 0x1009a134
mov edx, dword [ecx + 0x1c]
mov esi, dword [ecx + 0xe]
mov al, byte [ecx + 0xb]
mov bl, byte [ecx + 0xc]
sub edx, esi
lea edi, [edx + 0x24]
mov edx, dword [esp + 0x1c]
cmp edx, edi
jl 0x1009a134
mov esi, 0x24
cmp edi, esi
jle 0x10099eda
mov dl, byte [esi + ecx]
xor dl, al
add al, bl
mov byte [esi + ecx], dl
inc esi
cmp esi, edi
jl 0x10099ecb
mov eax, 0x24
lea ebx, [edi - 0x50]
xor ebp, ebp
xor edx, edx
xor esi, esi
cmp ebx, eax
mov dword [esp + 0x18], ebp
jle 0x1009a134
mov edi, 0xe961
cmp edx, 4
jge 0x1009a100
cmp edx, 3
ja case.default.0x10099f0b
jmp dword [edx*4 + 0x1009a13c]
cmp byte [eax + ecx], 0x68
jne case.default.0x10099f0b
cmp dword [eax + ecx + 5], 0x24245c8b
jne case.default.0x10099f0b
cmp word [eax + ecx + 9], 0x8166
jne case.default.0x10099f0b
cmp byte [ecx + eax + 0xb], 0xe3
jne case.default.0x10099f0b
cmp word [ecx + eax + 0xe], 0xeb
jne case.default.0x10099f0b
cmp byte [ecx + eax + 4], 0xff
jne case.default.0x10099f0b
mov esi, dword [eax + ecx + 1]
add eax, 0xf
mov edx, 1
jmp case.default.0x10099f0b
cmp dword [eax + ecx], 0x3fabd81
jne case.default.0x10099f0b
cmp dword [ecx + eax + 4], 0x45500000
jne case.default.0x10099f0b
cmp dword [ecx + eax + 8], 0x850f0000
jne case.default.0x10099f0b
cmp dword [ecx + eax + 0xc], 0x1b6
jne case.default.0x10099f0b
cmp dword [eax + ecx + 0x10], 0x8d5025eb
jne case.default.0x10099f0b
cmp byte [eax + ecx + 0x14], 0x85
jne case.default.0x10099f0b
cmp dword [eax + ecx + 0x19], 0x222e8
jne case.default.0x10099f0b
cmp dword [eax + ecx + 0x1d], 0xe858eb00
jne case.default.0x10099f0b
cmp dword [eax + ecx + 0x21], 0x1e2
jne case.default.0x10099f0b
cmp byte [eax + ecx + 0x25], 0xb9
jne case.default.0x10099f0b
cmp word [eax + ecx + 0x2a], 0x958d
jne case.default.0x10099f0b
cmp dword [eax + ecx + 0x30], 0x1dfe8
jne case.default.0x10099f0b
cmp dword [eax + ecx + 0x34], 0x8129eb00
jne case.default.0x10099f0b
cmp dword [eax + ecx + 0x38], 0x452bd
jne case.default.0x10099f0b
cmp dword [eax + ecx + 0x3c], 0x36363600
jne case.default.0x10099f0b
cmp byte [eax + ecx + 0x40], 0x36
jne case.default.0x10099f0b
add eax, 0x40
mov edx, 2
jmp case.default.0x10099f0b
cmp dword [eax + ecx], 0x3da8581
jne case.default.0x10099f0b
cmp word [ecx + eax + 4], 0
jne case.default.0x10099f0b
cmp dword [ecx + eax + 0xa], 0x858100eb
jne case.default.0x10099f0b
cmp dword [ecx + eax + 0xe], 0x3e2
jne case.default.0x10099f0b
cmp dword [ecx + eax + 0x16], 0x3f68d81
jne case.default.0x10099f0b
cmp dword [ecx + eax + 0x1a], 0x200000
jne case.default.0x10099f0b
cmp dword [eax + ecx + 0x1e], 0xeba000
jne case.default.0x10099f0b
cmp dword [eax + ecx + 0x22], 0x45285c7
jne case.default.0x10099f0b
cmp dword [eax + ecx + 0x26], 0x36360000
jne case.default.0x10099f0b
cmp word [eax + ecx + 0x2a], 0x3636
jne case.default.0x10099f0b
mov ebp, dword [ecx + eax + 0x12]
add eax, 0x2f
mov edx, 3
jmp case.default.0x10099f0b
cmp dword [eax + ecx], 0x858f00eb
jne case.default.0x10099f0b
cmp dword [ecx + eax + 4], 0x2fd
jne case.default.0x10099f0b
cmp dword [ecx + eax + 8], edi
jne case.default.0x10099f0b
cmp word [ecx + eax + 0xc], 0
jne case.default.0x10099f0b
lea edx, [eax + 0xe]
mov dword [esp + 0x18], edx
mov edx, 4
inc eax
cmp eax, ebx
jl 0x10099ef9
cmp edx, 4
jne 0x1009a134
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x1009a134
test esi, esi
je 0x1009a134
test ebp, ebp
je 0x1009a134
cmp dword [esp + 0x14], ebp
jl 0x1009a134
mov eax, dword [esp + 0x24]
test eax, eax
je 0x1009a12a
add esi, ecx
mov ecx, dword [esp + 0x20]
add esi, ecx
mov dword [eax], esi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret