Function at 0x40280f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x200a8
call 0x4095a4
push ebx
push esi
push edi
mov ebx, 0x38d7418a
mov eax, ebx
add eax, ebx
mov ebx, eax
add eax, ebx
mov ebx, eax
mov byte [ebp - 0x10003], 0
push 0x42e0e4
call 0x409510
mov dword [ebp - 0x1000c], eax
lea eax, [ebp - 0x1003c]
push eax
call fcn.004023b4
pop ecx
or eax, eax
je 0x403143
add ebx, 0x56c0
push 0
call 0x409a04
call 0x409848
mov dword [ebp - 0x10034], eax
xor ebx, 0x3204
push eax
lea eax, [ebp - 0x1003c]
push eax
call fcn.0040246d
add esp, 0xc
cmp dword [0x42a39c], 0
je 0x402860
add ebx, 0x559a
lea eax, [ebp - 0x10020]
push eax
mov eax, dword [0x42a39c]
push eax
mov edi, dword [eax]
call dword [edi + 0x48]
mov dword [ebp - 4], eax
or eax, eax
jne 0x402860
mov eax, ebx
add eax, ebx
mov ebx, eax
lea eax, [ebp - 0x10024]
push eax
push 0x42e160
mov eax, dword [ebp - 0x10020]
push eax
mov edi, dword [eax]
call dword [edi]
mov dword [ebp - 4], eax
or eax, eax
jne 0x403132
mov eax, ebx
xor eax, ebx
mov ebx, eax
lea eax, [ebp - 0x10040]
push eax
mov eax, dword [0x42a39c]
push eax
mov edi, dword [eax]
call dword [edi + 0x78]
mov dword [ebp - 4], eax
or eax, eax
jne 0x403117
push 0x41a050
push dword [ebp - 0x10040]
call fcn.00402322
add esp, 8
mov edi, eax
inc edi
mov dword [ebp - 0x10008], edi
mov eax, dword [ebp - 0x10034]
mov dword [0x42a054], eax
mov eax, ebx
add eax, ebx
mov ebx, eax
lea eax, [ebp - 0x10042]
push eax
mov eax, dword [0x42a39c]
push eax
mov edi, dword [eax]
call dword [edi + 0x7c]
mov dword [ebp - 4], eax
or eax, eax
jne 0x403117
cmp word [ebp - 0x10042], 0
je 0x402bfc
cmp byte [ebp - 0x10003], 0
je 0x403117
push 1
push 0x42e15e
lea eax, [ebp - 0x10003]
push eax
call fcn.0040203e
add esp, 0xc
mov edi, eax
mov word [ebp - 0x1004e], di
mov eax, ebx
mul ebx
mov dword [ebp - 0x10054], eax
mov ebx, eax
movzx eax, word [ebp - 0x1004e]
cmp eax, 0xffff
je 0x402bde
movzx eax, word [ebp - 0x1004e]
inc eax
push eax
lea eax, [ebp - 0x10003]
push eax
push 0x41a050
call 0x409a34
add esp, 0xc
movzx eax, word [ebp - 0x1004e]
mov byte [eax + 0x41a050], 0
and dword [ebp - 0x1004c], 0
cmp dword [0x42b46c], 0
jne 0x402ba8
mov eax, 0x65a9
mul ebx
mov dword [ebp - 0x10058], eax
mov ebx, eax
push 1
push 0x42e0d5
push 0x41a050
call fcn.0040203e
add esp, 0xc
cmp eax, 0xffff
je 0x402a33
push 1
push 0x42e0ce
lea edi, [ebp - 0x10003]
push edi
call fcn.0040203e
add esp, 0xc
cmp eax, 0xffff
je 0x402a33
mov dword [ebp - 0x1004c], 1
push 1
push 0x42e0c1
push 0x41a050
call fcn.0040203e
add esp, 0xc
cmp eax, 0xffff
je 0x402a75
push 1
push 0x42e0b9
lea edi, [ebp - 0x10003]
push edi
call fcn.0040203e
add esp, 0xc
cmp eax, 0xffff
je 0x402a75
mov dword [ebp - 0x1004c], 1
push 1
push 0x42e0ad
push 0x41a050
call fcn.0040203e
add esp, 0xc
cmp eax, 0xffff
je 0x402ab7
push 1
push 0x42e0b9
lea edi, [ebp - 0x10003]
push edi
call fcn.0040203e
add esp, 0xc
cmp eax, 0xffff
je 0x402ab7
mov dword [ebp - 0x1004c], 1
push 1
push 0x42e0a3
push 0x41a050
call fcn.0040203e
add esp, 0xc
cmp eax, 0xffff
je 0x402af9
push 1
push 0x42e0b9
lea edi, [ebp - 0x10003]
push edi
call fcn.0040203e
add esp, 0xc
cmp eax, 0xffff
je 0x402af9
mov dword [ebp - 0x1004c], 1
mov eax, ebx
sub eax, ebx
mov ebx, eax
push 1
push 0x42e094
push 0x41a050
call fcn.0040203e
add esp, 0xc
cmp eax, 0xffff
je 0x402b24
mov dword [ebp - 0x1004c], 1
push 1
push 0x42e083
push 0x41a050
call fcn.0040203e
add esp, 0xc
cmp eax, 0xffff
je 0x402b49
mov dword [ebp - 0x1004c], 1
push 1
push 0x42e078
push 0x41a050
call fcn.0040203e
add esp, 0xc
cmp eax, 0xffff
je 0x402ba8
push 1
push 0x42e0b9
lea edi, [ebp - 0x10003]
push edi
call fcn.0040203e
add esp, 0xc
cmp eax, 0xffff
jne 0x402b9e
push 1
push 0x42e070
lea edi, [ebp - 0x10003]
push edi
call fcn.0040203e
add esp, 0xc
cmp eax, 0xffff
je 0x402ba8
mov dword [ebp - 0x1004c], 1
mov eax, ebx
xor eax, ebx
mov ebx, eax
cmp dword [ebp - 0x1004c], 0
jne 0x402bcd
mov byte [0x42b470], 0
lea eax, [ebp - 0x10003]
push eax
call fcn.00402685
pop ecx
jmp 0x402bde
mov byte [0x42b470], 1
mov eax, dword [0x42a054]
mov dword [0x42b464], eax
mov eax, ebx
mul ebx
mov dword [ebp - 0x1005c], eax
mov ebx, eax
mov byte [ebp - 0x10003], 0
jmp 0x403117
mov eax, ebx
mul ebx
mov dword [ebp - 0x1004c], eax
mov ebx, eax
lea eax, [ebp - 0x10028]
push eax
mov eax, dword [ebp - 0x10024]
push eax
mov edi, dword [eax]
call dword [edi + 0x5c]
mov dword [ebp - 4], eax
or eax, eax
jne 0x403117
lea eax, [ebp - 0x10048]
push eax
mov eax, dword [ebp - 0x10028]
push eax
mov edi, dword [eax]
call dword [edi + 0x20]
mov dword [ebp - 4], eax
mov eax, ebx
mul ebx
mov dword [ebp - 0x10050], eax
mov ebx, eax
cmp dword [ebp - 4], 0
jne 0x40310b
and dword [ebp - 0x1002c], 0
mov eax, ebx
xor eax, ebx
mov ebx, eax
and dword [ebp - 0x10030], 0
cmp dword [ebp - 0x10048], 1
jle 0x402d24
add ebx, 0x24cb
mov word [ebp - 0x10060], 0x17
mov dword [ebp - 0x10058], 1
lea eax, [ebp - 0x10070]
push eax
lea eax, [ebp - 0x10060]
push eax
mov eax, dword [ebp - 0x10028]
push eax
mov esi, dword [eax]
call dword [esi + 0x1c]
mov eax, ebx
add eax, ebx
mov ebx, eax
lea eax, [ebp - 0x1002c]
push eax
push 0x42e190
mov eax, dword [ebp - 0x10068]
push eax
mov edi, dword [eax]
call dword [edi]
mov dword [ebp - 4], eax
or eax, eax
jne 0x40310b
lea eax, [ebp - 0x10030]
push eax
mov eax, dword [ebp - 0x1002c]
push eax
mov edi, dword [eax]
call dword [edi + 0xd0]
mov dword [ebp - 4], eax
or eax, eax
jne 0x4030f6
lea eax, [ebp - 0x10018]
push eax
mov eax, dword [ebp - 0x10030]
push eax
mov edi, dword [eax]
call dword [edi + 0x38]
mov dword [ebp - 4], eax
mov eax, 0x2c6
mul ebx
mov dword [ebp - 0x10074], eax
mov ebx, eax
cmp dword [ebp - 4], 0
je 0x402d50
jmp 0x4030db
lea eax, [ebp - 0x10018]
push eax
mov eax, dword [ebp - 0x10024]
push eax
mov edi, dword [eax]
call dword [edi + 0x38]
mov dword [ebp - 4], eax
mov eax, ebx
mul ebx
mov dword [ebp - 0x10054], eax
mov ebx, eax
cmp dword [ebp - 4], 0
jne 0x40310b
mov eax, ebx
mul ebx
mov dword [ebp - 0x10054], eax
mov ebx, eax
lea eax, [ebp - 0x1001c]
push eax
mov eax, dword [ebp - 0x10018]
push eax
mov edi, dword [eax]
call dword [edi + 0x24]
mov dword [ebp - 4], eax
or eax, eax
jne 0x4030cf
mov eax, ebx
mul ebx
mov dword [ebp - 0x10058], eax
mov ebx, eax
and dword [ebp - 0x10010], 0
push dword [ebp - 0x10008]
push 0x41a050
lea eax, [ebp - 0x10003]
push eax
call 0x409a34
add esp, 0xc
and dword [ebp - 0x10014], 0
jmp 0x4030ad
push 0
call 0x409a04
mov eax, ebx
xor eax, ebx
mov ebx, eax
push dword [ebp - 0x10014]
lea eax, [ebp - 0x10003]
push eax
push 0x42e065
lea eax, [ebp - 0x10003]
push eax
call 0x409a7c
add esp, 0x14
mov eax, ebx
add eax, ebx
mov ebx, eax
mov word [ebp - 0x10078], 2
mov eax, dword [ebp - 0x10014]
mov dword [ebp - 0x10070], eax
lea eax, [ebp - 0x10068]
push eax
lea esi, [ebp - 0x10078]
sub esp, 0x10
mov edi, esp
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x10078]
sub esp, 0x10
mov edi, esp
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x10018]
push edi
mov edi, dword [edi]
call dword [edi + 0x2c]
mov dword [ebp - 4], eax
sub ebx, 0x25d4
or eax, eax
jne 0x4030a7
and dword [ebp - 0x10060], 0
lea eax, [ebp - 0x10060]
push eax
push 0x42e180
mov eax, dword [ebp - 0x10068]
push eax
mov edi, dword [eax]
call dword [edi]
mov dword [ebp - 4], eax
or eax, eax
jne 0x40309b
sub ebx, 0x3dfd
lea eax, [ebp - 0x10064]
push eax
mov eax, dword [ebp - 0x10060]
push eax
mov edi, dword [eax]
call dword [edi + 0x6c]
mov dword [ebp - 4], eax
or eax, eax
jne 0x403089
and dword [ebp - 0x1005c], 0
jmp 0x403077
push 0
call 0x409a04
pop ecx
mov eax, ebx
add eax, ebx
mov ebx, eax
mov word [ebp - 0x10090], 2
mov eax, dword [ebp - 0x1005c]
mov dword [ebp - 0x10088], eax
lea eax, [ebp - 0x10080]
push eax
lea esi, [ebp - 0x10090]
sub esp, 0x10
mov edi, esp
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x10090]
sub esp, 0x10
mov edi, esp
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x10060]
push edi
mov edi, dword [edi]
call dword [edi + 0x74]
mov dword [ebp - 4], eax
mov eax, 0x4d59
mul ebx
mov dword [ebp - 0x100a4], eax
mov ebx, eax
cmp dword [ebp - 4], 0
jne 0x403071
and dword [ebp - 0x1007c], 0
lea eax, [ebp - 0x1007c]
push eax
push 0x42e170
mov eax, dword [ebp - 0x10080]
push eax
mov edi, dword [eax]
call dword [edi]
mov dword [ebp - 4], eax
or eax, eax
jne 0x403056
cmp dword [ebp - 0x1007c], 0
je 0x403056
lea eax, [ebp - 0x100a0]
push eax
push 0
push dword [ebp - 0x1000c]
mov eax, dword [ebp - 0x1007c]
push eax
mov edi, dword [eax]
call dword [edi + 0x20]
mov dword [ebp - 4], eax
mov eax, ebx
xor eax, ebx
mov ebx, eax
cmp dword [ebp - 4], 0
jne 0x403056
cmp word [ebp - 0x100a0], 8
jne 0x403056
cmp dword [ebp - 0x10098], 0
je 0x403056
lea eax, [ebp - 0x200a3]
push eax
push dword [ebp - 0x10098]
call fcn.00402322
add esp, 8
mov edi, eax
inc edi
mov dword [ebp - 0x200a8], edi
mov eax, ebx
add eax, ebx
mov ebx, eax
cmp byte [ebp - 0x200a3], 0
je 0x403056
mov dword [ebp - 0x10010], 1
push 4
push dword [ebp - 0x1005c]
lea eax, [ebp - 0x10003]
push eax
push 0x42e05d
lea eax, [ebp - 0x10003]
push eax
call 0x409a7c
add esp, 0x14
lea ecx, [ebp - 0x10003]
or eax, 0xffffffff
inc eax
cmp byte [ecx + eax], 0
jne 0x403003
mov dword [ebp - 0x10008], eax
add ebx, 0x2b2d
push dword [ebp - 0x200a8]
lea eax, [ebp - 0x200a3]
push eax
mov eax, dword [ebp - 0x10008]
lea eax, [ebp + eax - 0x10003]
push eax
call 0x409a34
add esp, 0xc
push 4
lea eax, [ebp - 0x10003]
push eax
push 0x42e058
lea eax, [ebp - 0x10003]
push eax
call 0x409a7c
add esp, 0x10
add ebx, 0x409f
cmp dword [ebp - 0x1007c], 0
je 0x403065
mov eax, dword [ebp - 0x10080]
push eax
mov esi, dword [eax]
call dword [esi + 8]
inc dword [ebp - 0x1005c]
mov eax, dword [ebp - 0x10064]
cmp dword [ebp - 0x1005c], eax
jb 0x402ea2
mov eax, dword [ebp - 0x10060]
push eax
mov esi, dword [eax]
call dword [esi + 8]
mov eax, ebx
sub eax, ebx
mov ebx, eax
mov eax, dword [ebp - 0x10068]
push eax
mov esi, dword [eax]
call dword [esi + 8]
inc dword [ebp - 0x10014]
mov eax, dword [ebp - 0x1001c]
cmp dword [ebp - 0x10014], eax
jb 0x402db3
cmp dword [ebp - 0x10010], 0
jne 0x4030cf
mov byte [ebp - 0x10003], 0
mov eax, dword [ebp - 0x10018]
push eax
mov esi, dword [eax]
call dword [esi + 8]
cmp dword [ebp - 0x10030], 0
je 0x4030f0
mov eax, dword [ebp - 0x10030]
push eax
mov esi, dword [eax]
call dword [esi + 8]
xor ebx, 0x132a
cmp dword [ebp - 0x1002c], 0
je 0x40310b
mov eax, dword [ebp - 0x1002c]
push eax
mov esi, dword [eax]
call dword [esi + 8]
mov eax, dword [ebp - 0x10028]
push eax
mov esi, dword [eax]
call dword [esi + 8]
mov eax, dword [ebp - 0x10024]
push eax
mov esi, dword [eax]
call dword [esi + 8]
mov eax, 0x1de7
mul ebx
mov dword [ebp - 0x1005c], eax
mov ebx, eax
mov eax, dword [ebp - 0x10020]
push eax
mov esi, dword [eax]
call dword [esi + 8]
jmp 0x402860
pop edi
pop esi
pop ebx
leave
ret