Function at 0x10024e88
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [ebp + 0x10]
push ebx
push esi
lea ecx, [eax + 0x5ac]
push edi
mov edi, eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x44], ecx
cmp eax, ecx
ja 0x100249ae
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
jmp 0x10024890
cmp edi, 0x5db4
ja 0x10024a60
je 0x1002506c
cmp edi, 0x5923
ja 0x10024a38
je 0x100249ae
mov eax, edi
sub eax, 0x58f7
je 0x100248d7
sub eax, 0x16
jne 0x10025043
mov eax, dword [ebp - 0x20]
inc dword [0x10079c78]
mov dword [ebp - 0x24], eax
jmp 0x10025043
test esi, esi
je 0x100248e7
cmp esi, 0x10079c64
jne 0x1002505c
cmp dword [0x1007c408], 0
je 0x10024929
mov ecx, dword [0x1007a154]
push 0
lea edx, [ebp - 0x2c]
push edx
push 0
push 0
push 0x15f0
mov dword [ebp - 0x2c], ecx
call fcn.100078c0
add esp, 0x14
mov dword [ebp - 0x20], eax
test eax, eax
je 0x10025169
inc dword [0x10079c7c]
mov ebx, dword [ebp + 0x14]
jmp 0x10025043
mov ebx, 0x53da
mov edi, edi
cmp ebx, 0x549c
ja 0x10024a05
je 0x1002498e
mov eax, ebx
sub eax, 0x53da
je 0x10024970
sub eax, 0x61
jne 0x10024a1b
cmp ch, byte [ebx + eax*2]
pop esp
mov esp, 0x7a09068
adc byte [eax - 0x65], ch
jl 0x1002495e
add byte [eax - 0x18], dl
or eax, dword [eax]
add al, 0
add esp, 0xc
mov dword [ebp - 0x28], eax
jmp 0x10024a1b
cmp byte [edx + 0x6a5fbc05], bh
add byte [eax + 0x38], ch
xchg edi, eax
pop es
adc byte [eax + 0x79], ch
dec edx
add byte [eax], al
call fcn.10003820
add esp, 0xc
jmp 0x10024a1b
popal
sar dword [ebx], 0xc5
das
cmp dword [ebp - 0x28], 0
jge 0x100249de
mov edi, 0x3fcc
mov edi, edi
mov eax, edi
sub eax, 0x3fcc
je 0x100249b8
sub eax, 0x34
jne 0x100249d3
mov eax, dword [ebp - 0x24]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x10079738
push 0
push 0x37e1
call fcn.10005970
add esp, 0xc
mov dword [ebp - 0x24], 0
add edi, 0x34
cmp edi, 0x4000
jbe 0x100249a0
mov eax, dword [0x1007a0f0]
mov ecx, dword [ebp - 0x28]
mov edx, dword [eax + ecx*4]
push 0x10079738
push 0
push 0x37e1
mov dword [ebp - 0x20], edx
call fcn.10005970
mov edi, dword [ebp - 0x2c]
add esp, 0xc
jmp 0x10024a1b
cmp ebx, 0x54fd
jne 0x10024a1b
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
add eax, 8
mov dword [ebp - 0x20], eax
add ebx, 0x61
cmp ebx, 0x54fd
jbe 0x10024930
inc dword [0x10079c7c]
mov ebx, dword [ebp + 0x14]
jmp 0x10025043
cmp edi, 0x5d9e
jne 0x10025043
push 0
push 0
push 0x2bb1
push ebx
push 0
push esi
push 0
call fcn.10033260
add esp, 0x1c
jmp 0x10025043
mov eax, edi
sub eax, 0x6312
je 0x10024ff6
sub eax, 0x16
je 0x10024a97
sub eax, 0x16
jne 0x10025043
in al, 0x52
push edx
add dword [edi + 0x4860b8e2], ebx
add byte [eax], al
cmp eax, eax
je 0x10025076
add eax, 0x1f
cmp eax, 0x4860
jbe 0x10024a87
push eax
xor bl, ch
and byte [ecx*4 - 0x40ffdb9c], dh
xor eax, 0x8900001e
jge 0x10024a7c
mov edi, 0x1e35
mov dword [ebp - 0x2c], edi
jmp 0x10024ab0
cmp edi, 0x1f2f
ja 0x10024c19
je 0x10024bea
lea eax, [edi - 0x1e35]
cmp eax, 0xc8
ja case.0x10024c31.8034
movzx edx, byte [eax + 0x1002518c]
jmp dword [edx*4 + 0x10025174]
push 0
push 0
push 0x2bb1
lea eax, [ebp - 8]
push eax
push 0
push ebx
push 0
call fcn.10033260
lea ecx, [ebp - 0x10]
push ecx
push eax
push 0
push 0x3384
call fcn.10069ec0
mov ebx, eax
add esp, 0x2c
mov dword [ebp + 0x14], ebx
jmp case.0x10024c31.8034
mov edx, dword [ebp + 8]
cmp dword [edx], 0x18
jl 0x10024fef
lea eax, [ebp - 0x18]
push eax
push ebx
push 0
push 0x3384
call fcn.10069ec0
mov ecx, dword [ebp - 0x18]
add esp, 0x10
mov ebx, eax
mov dword [ebp + 0x14], ebx
cmp ecx, dword [esi]
je case.0x10024c31.8034
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret
mov ch, 0x7a
aaa
imul ecx, dword [edx - 0x73], 0x5352ec55
push 0
push 0x3384
call fcn.10069ec0
mov ebx, eax
mov eax, dword [ebp + 8]
add dword [eax], 0xffffffe8
mov eax, dword [eax]
add esp, 0x10
mov dword [ebp + 0x14], ebx
cmp eax, dword [ebp - 0x14]
jge case.0x10024c31.8034
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret
les eax, es:[edi - 0x697ad42]
inc ecx
add byte [eax], al
lea eax, [ebp + 0x13]
push eax
push ebx
call fcn.10036e40
push 0x41f9
lea ecx, [ebp - 1]
push ecx
push eax
call fcn.10036e40
mov ebx, eax
add esp, 0x18
mov dword [ebp + 0x14], ebx
jmp case.0x10024c31.8034
lea edx, [ebp - 0xc]
push edx
push ebx
push 0
push 0x3384
call fcn.10069ec0
lea ecx, [ebp - 0x1c]
push ecx
push eax
push 0
push 0x3384
call fcn.10069ec0
mov ebx, eax
add esp, 0x20
mov dword [ebp + 0x14], ebx
jmp case.0x10024c31.8034
mov al, byte [ebp + 0x13]
cmp al, 0x51
je case.0x10024c31.8034
cmp al, 0x52
je case.0x10024c31.8034
cmp al, 0x53
je case.0x10024c31.8034
cmp al, 0x54
je case.0x10024c31.8034
pop edi
pop esi
mov eax, 0xfffffffd
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [edi - 0x1f61]
cmp eax, 0xc8
ja case.0x10024c31.8034
movzx edx, byte [eax + 0x10025270]
jmp dword [edx*4 + 0x10025258]
mov al, byte [ebp + 0x13]
cmp al, 0x52
jne 0x10024d5e
mov ebx, 0x1b5b
mov edi, 0x20
lea ecx, [ecx]
mov eax, ebx
sub eax, 0x1b5b
je 0x10024cbd
sub eax, 0xe
jne 0x10024d44
lea eax, [ebp - 0x30]
push eax
push esi
push 0x6f47
mov dword [ebp - 0x30], edi
call fcn.10027c90
add esp, 0xc
test eax, eax
je 0x10024d44
mov ecx, dword [ebp - 0x10]
mov edx, dword [esi + 0x4c]
push 0x2292
lea eax, [ebp - 0x30]
mov dword [ebp - 0x34], ecx
push eax
lea ecx, [ebp - 0x34]
push ecx
push 0
mov dword [ebp - 0x30], edx
call fcn.10051050
mov edx, dword [esi + 0x30]
push edx
push eax
mov eax, dword [ebp - 0xc]
push eax
push str.saffron.herbert_walesonline.co.uk
push 0x10
push esi
call fcn.1000d5c0
add esp, 0x28
jmp 0x10024d44
mov ecx, dword [ebp - 0x10]
mov edx, dword [esi + 0x4c]
push 0x2292
lea eax, [ebp - 0x34]
mov dword [ebp - 0x30], ecx
push eax
lea ecx, [ebp - 0x30]
push ecx
push 0
mov dword [ebp - 0x34], edx
call fcn.10051050
add esp, 0x10
test eax, eax
js 0x10024d1b
mov edx, dword [ebp - 0x10]
mov eax, dword [esi + 0x4c]
push 0x2292
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x30], edx
push ecx
lea edx, [ebp - 0x30]
push edx
push 0
mov dword [ebp - 0x34], eax
call fcn.10051050
push 0x753b
mov dword [ebp - 0x38], eax
push 0
lea eax, [ebp - 0x38]
push eax
push esi
call fcn.10045610
add esp, 0x20
mov ecx, dword [ebp - 0xc]
push 0x54d5
push esi
lea edx, [ebp - 0x38]
push edx
push 0
mov dword [ebp - 0x38], ecx
call fcn.1001af10
push 0
push 0
push esi
push 0x64f8
call fcn.1000d960
add esp, 0x20
add ebx, 0xe
cmp ebx, 0x1b69
jbe 0x10024c50
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp - 0x2c]
jmp case.0x10024c31.8034
cmp al, 0x51
jne 0x10024f15
lea eax, [ebp - 0x38]
push eax
push esi
push 0x6f47
mov dword [ebp - 0x38], 0x10
call fcn.10027c90
add esp, 0xc
test eax, eax
je 0x10024d9b
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
push ecx
push edx
push str.12_9Sundance_Theatre_Lab
push 0x10
push esi
call fcn.1000d5c0
add esp, 0x14
mov eax, dword [esi + 0x3c]
add eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0xc]
push 0x2292
lea edx, [ebp - 0x38]
mov dword [ebp - 0x34], eax
push edx
lea eax, [ebp - 0x34]
push eax
push 0
mov dword [ebp - 0x38], ecx
call fcn.10051050
add esp, 0x10
test eax, eax
jns case.0x10024c31.8034
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
push 0
lea eax, [ebp - 0x38]
push eax
mov dword [ebp - 0x34], ecx
push 0x302e
lea ecx, [ebp - 0x34]
push ecx
push esi
mov dword [ebp - 0x38], edx
call fcn.10024440
mov edx, dword [esi + 0x18]
mov eax, dword [ebp - 0xc]
push 0x2292
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x34], edx
push ecx
lea edx, [ebp - 0x34]
push edx
push 0
mov dword [ebp - 0x38], eax
call fcn.10051050
add esp, 0x24
test eax, eax
js case.0x10024c31.8034
mov ebx, dword [ebp - 0x3c]
mov edi, 0x34a
lea ecx, [ecx]
cmp edi, 0x456
ja 0x10024ea5
je 0x10024e9d
lea eax, [edi - 0x34a]
cmp eax, 0xc9
ja case.0x10024e42.843
movzx eax, byte [eax + 0x10025350]
jmp dword [eax*4 + 0x1002533c]
movzx ecx, byte [ebp + 0x13]
mov dword [ebx + 0xc], ecx
jmp case.0x10024e42.843
aad 0x62
fiadd word [esi]
outsb dx, byte [esi]
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x38]
push eax
push esi
push 0x64a
mov dword [ebp - 0x38], edx
call fcn.10004b50
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x3c], edx
mov ebx, eax
mov dword [eax + 8], ecx
jmp case.0x10024e42.843
movzx edx, byte [ebp - 1]
mov dword [ebx + 0x10], edx
jmp case.0x10024e42.843
movzx eax, word [ebp - 8]
mov dword [ebx + 0x14], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebx + 0x18], ecx
mov edx, dword [ebp - 0xc]
mov dword [ebx + 0x1c], edx
jmp case.0x10024e42.843
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 0x20], eax
jmp case.0x10024e42.843
mov eax, edi
sub eax, 0x499
je 0x10024ef2
sub eax, 0x43
je 0x10024ec9
sub eax, 0x43
jne case.0x10024e42.843
push esi
push 0x53c0
push ebx
call fcn.1001bc00
add esp, 0xc
jmp case.0x10024e42.843
inc eax
sub eax, 0x8b2ebe22
inc ebp
in al, dx
test eax, eax
je case.0x10024e42.843
push 0
push 0x22
lea ecx, [ebp - 0x38]
push ecx
lea edx, [ebx + 0x38]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x14]
push edx
push eax
call fcn.1006af70
add esp, 0x14
jmp case.0x10024e42.843
mov ecx, dword [ebp - 0x14]
mov dword [ebx + 0x24], ecx
add edi, 0x43
cmp edi, 0x51f
jbe 0x10024e20
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], ebx
mov ebx, dword [ebp + 0x14]
jmp case.0x10024c31.8034
cmp al, 0x53
jne 0x10024f50
or dword [esi + 0x48], 2
lea edx, [ebp - 0x38]
push edx
push esi
push 0x6f47
mov dword [ebp - 0x38], 0x40
call fcn.10027c90
add esp, 0xc
test eax, eax
je case.0x10024c31.8034
push str.Caf_Hayek
push 0x40
push esi
call fcn.1000d5c0
jmp 0x10024fd5
cmp al, 0x54
jne 0x10024c0d
lea eax, [ebp - 0x38]
push eax
push esi
push 0x6f47
mov dword [ebp - 0x38], 0x80
call fcn.10027c90
add esp, 0xc
test eax, eax
je case.0x10024c31.8034
movzx ecx, word [ebp - 8]
push ecx
push 0x10076665
push 0x80
push esi
call fcn.1000d5c0
add esp, 0x10
jmp case.0x10024c31.8034
movzx edx, word [ebp - 8]
mov dword [esi + 0x40], edx
jmp case.0x10024c31.8034
push 0
push 0
push esi
push 0x64f8
call fcn.1000d960
add esp, 0x10
jmp case.0x10024c31.8034
in al, dx
fiadd word [edi - 0xb]
xchg edx, eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
add ebx, eax
sub dword [ecx], eax
mov dword [ebp + 0x14], ebx
jmp case.0x10024c31.8034
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x38]
push ecx
push esi
push 0x2bb8
mov dword [ebp - 0x38], eax
call fcn.1001bf30
add esp, 0xc
add edi, 0x32
mov dword [ebp - 0x2c], edi
cmp edi, 0x2029
jbe 0x10024ab0
jmp 0x10024aa0
mov edi, 0x6328
jmp 0x10025043
mov edx, dword [esi + 0x10]
lea eax, [ebp - 0x38]
push eax
push esi
push 0x6f47
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x38], 2
call fcn.10027c90
add esp, 0xc
test eax, eax
je 0x1002502f
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push edx
push str.Try_a_search:
push 2
push esi
call fcn.1000d5c0
add esp, 0x10
test ebx, ebx
je 0x10024b46
mov eax, dword [ebp + 8]
cmp dword [eax], 0x18
jl 0x10024b46
add edi, 0x16
mov dword [ebp - 0x2c], edi
cmp edi, dword [ebp - 0x44]
jbe 0x10024890
mov eax, dword [ebp - 0x24]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 8]
push esi
call ecx
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
lea eax, [esi + 2]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x48]
mov eax, dword [esi + 0x10]
push 0x2292
lea ecx, [ebp + 0x10]
mov dword [ebp - 0x48], edx
push ecx
lea edx, [ebp - 0x48]
push edx
push 0
mov dword [ebp + 0x10], eax
call fcn.10051050
add esp, 0x10
test eax, eax
jle 0x10025169
mov eax, dword [esi + 0x44]
cmp eax, dword [esi + 0x40]
jae 0x10025169
mov dword [ebp + 0x10], 0x7ec3
mov ecx, dword [ebp + 0x10]
jmp 0x100250c0
mov eax, dword [ebp + 0x10]
sub eax, 0x7ec3
je 0x100250e9
sub eax, 6
jne 0x10025155
mov eax, dword [esi + 0x40]
cmp dword [esi + 0x44], eax
jbe 0x10025155
mov dword [esi + 0x44], eax
imul eax, ecx
mov dword [esi + 0x80], eax
jmp 0x10025155
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 8]
cmp eax, dword [esi + 0x24]
jae 0x10025100
inc eax
add dword [esi + 0x80], ecx
mov dword [esi + 0x44], eax
jmp 0x10025155
mov ebx, 0x4760
cmp ebx, ebx
jne 0x1002514a
mov bh, 0x2a
jp 0x10025128
xor dword [ecx], edi
mov es, word [eax + 0x73000000]
push es
mov dword [esi + 0x80], ecx
mov edi, dword [esi + 0x80]
mov eax, ecx
imul eax, ecx
xor edx, edx
div edi
mov edx, ecx
shr edx, 4
add eax, edi
add eax, edx
sal bh, cl
test dword [ebx + 0x4eac1d1], 0xc203c703
mov edx, dword [esi + 0x44]
inc edx
mov edi, edx
imul edi, ecx
mov dword [esi + 0x80], eax
cmp edi, eax
ja 0x1002514a
mov dword [esi + 0x44], edx
add ebx, 0x4d
cmp ebx, 0x4760
jbe 0x10025107
mov eax, dword [ebp + 0x10]
add eax, 6
mov dword [ebp + 0x10], eax
cmp eax, 0x7ec9
jbe 0x100250c0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret