Function at 0x42f780
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0xffffdc8b
mov word [0x436b6e], ax
movsx eax, word [0x436c12]
xor eax, 0xd4f9fd29
add dword [0x4364a8], eax
mov ecx, dword [0x436148]
mov eax, dword [0x4356a0]
add eax, 0x271852d8
add eax, ecx
mov dword [0x436148], eax
dec dword [0x4356a0]
mov eax, dword [0x4357b8]
sub eax, 0x61a41226
cmp eax, 0xac8044
jg 0x42f7d8
add dword [0x435ea8], 0x48148416
mov eax, dword [0x4365c0]
mov ecx, 0xb3a1be19
sub ecx, eax
movzx eax, word [0x4371a6]
xor ecx, 0x1ce339ec
sub eax, ecx
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov word [0x4371a6], ax
or dword [0x436458], 0xb2648e71
cmp dword [ebp + 0x14], 0
push edi
je 0x42f915
dec dword [0x4350b0]
mov eax, dword [0x4350b0]
cmp eax, 0x8de6f13a
jl 0x42f877
dec dword [0x4350a4]
mov ecx, dword [0x4350a4]
dec word [0x4368cc]
mov ax, word [0x4368cc]
movsx edx, ax
mov eax, dword [0x435a7c]
and edx, ecx
or edx, 0xdcc2ec8f
add eax, 0x7d16656f
cmp eax, edx
je 0x42f86b
movzx eax, word [0x436ebe]
sub eax, 0x31992bea
mov word [0x436ebe], ax
jmp 0x42f894
and dword [0x43541c], 0x598cad7e
jmp 0x42f894
imul eax, dword [0x436280], 0x68294eeb
mov ecx, 0xbd1afb2d
sub ecx, eax
xor dword [0x43642c], ecx
dec dword [0x436280]
mov byte [esi], 0x2d
inc esi
mov ax, word [0x436ae4]
mov ecx, dword [0x435510]
dec dword [0x435510]
cwde
and ecx, eax
xor ecx, 0x8d3a0ad9
cmp ecx, 0xc7c298fb
jge 0x42f900
dec dword [0x4364a4]
mov eax, dword [0x4364a4]
cmp eax, 0xa7a28108
jle 0x42f8f6
movsx ecx, word [0x436f5e]
mov eax, dword [0x43547c]
and ecx, 0xe50b571e
or eax, ecx
or dword [0x435d70], eax
dec dword [0x43547c]
dec word [0x436f5e]
jmp 0x42f900
add dword [0x435fd4], 0x615b13b6
mov eax, dword [0x4366f0]
mov edi, dword [ebp + 8]
sar eax, 7
neg edi
xor dword [0x435a20], eax
jmp 0x42f918
mov edi, dword [ebp + 8]
mov eax, dword [0x43544c]
mov ecx, 0x4207a8cd
sar eax, 2
sub ecx, eax
movsx eax, word [0x436df4]
and eax, 0x714b9a1
cmp ecx, eax
jne 0x42f955
mov eax, dword [0x435114]
and eax, 0xfffffffc
cmp eax, 0x84bf233c
jne 0x42f955
imul eax, dword [0x435228], 0x10f01854
mov dword [0x435228], eax
mov ecx, dword [0x43504c]
mov ebx, esi
movsx eax, word [0x436904]
add ecx, 0x324a0a39
cmp eax, ecx
jne 0x42f983
dec dword [0x435bc4]
mov eax, dword [0x435bc4]
or eax, 0x900cc987
mov dword [0x435530], eax
inc dword [0x435b10]
mov eax, dword [0x435b10]
imul eax, eax, 0x973ecb3
and eax, 0x619e263c
cmp eax, 0x3855635e
jle 0x42f9e2
mov eax, dword [0x435fe4]
mov ecx, 0x20fed965
not eax
imul eax, eax, 0x25433b3f
sub ecx, eax
cmp ecx, 0x9fa3072c
jne 0x42f9cd
imul eax, dword [0x4362e0], 0xbc8afaf6
mov dword [0x4362e0], eax
jmp 0x42fa02
movzx eax, word [0x4371ac]
imul eax, eax, 0x254eb71a
mov word [0x4371ac], ax
jmp 0x42fa02
movsx ecx, word [0x436b62]
mov edx, 0x71c07442
sub edx, ecx
cmp edx, 0xf21ecab8
jne 0x42fa02
mov dword [0x435750], 0x14a8dbaa
mov eax, edi
add dword [0x436700], 0x9bd5f65d
xor edx, edx
div dword [ebp + 0x10]
mov edi, eax
mov eax, dword [0x4364a4]
add eax, 0xccc2dfdb
and dword [0x43647c], eax
cmp edx, 9
jbe 0x42fa73
movsx eax, word [0x436854]
add dl, 0x57
mov ecx, dword [0x436260]
imul eax, eax, 0xe1a6de00
and ecx, eax
and ecx, 0x3a8beca4
mov dword [0x436260], ecx
mov byte [esi], dl
inc esi
dec dword [0x435580]
mov eax, dword [0x435580]
add eax, 0xb1301be9
and eax, dword [0x436414]
and eax, 0x879117e5
mov dword [0x436414], eax
jmp 0x42fabe
movsx eax, word [0x436eaa]
imul ecx, eax, 0xd159be03
mov eax, dword [0x436728]
shl eax, 8
xor eax, 0x318847e0
or ecx, 0xbaeda2ca
cmp ecx, eax
jle 0x42faa6
imul eax, dword [0x435ffc], 0x9c335f18
mov dword [0x435ffc], eax
add dl, 0x30
mov byte [esi], dl
inc esi
movzx eax, word [0x43688c]
sub eax, 0x525e8170
mov word [0x43688c], ax
movzx eax, word [0x437012]
imul eax, eax, 0xd3e79f8
mov word [0x437012], ax
test edi, edi
jne 0x42f983
xor dword [0x436420], 0xf68d95e1
mov byte [esi], 0
dec esi
dec word [0x43722a]
mov ax, word [0x43722a]
cwde
and eax, 0xebefbe2d
cmp eax, 0x8e4ef33b
je 0x42fb20
mov eax, dword [0x435cc4]
mov ecx, 0x6bc464e8
sub ecx, eax
add dword [0x43570c], ecx
dec dword [0x435cc4]
lea esp, [esp]
xor dword [0x4350d0], 0x202180c
imul eax, dword [0x43644c], 0xddf3ffdd
mov cl, byte [esi]
mov dword [0x43644c], eax
mov al, byte [ebx]
mov byte [esi], al
dec esi
mov eax, dword [0x436644]
and eax, 0xf944a9a1
xor dword [0x436168], eax
mov byte [ebx], cl
inc ebx
dec word [0x436926]
movzx eax, word [0x436926]
mov ecx, dword [0x43572c]
cwde
not ecx
add eax, ecx
or dword [0x4362dc], eax
inc dword [0x435840]
mov eax, dword [0x435840]
or eax, 0xa0b3627e
add eax, dword [0x435f98]
mov dword [0x435f98], eax
inc word [0x4367d6]
movzx eax, word [0x4367d6]
movsx ecx, ax
add ecx, dword [0x4361f8]
movzx eax, word [0x43685c]
and ecx, 0x54726a99
sub eax, ecx
mov word [0x43685c], ax
cmp ebx, esi
jb 0x42fb20
mov eax, dword [0x4359c4]
pop edi
or eax, 0x57f353bf
and dword [0x4350ac], eax
inc dword [0x4359c4]
pop esi
pop ebx
pop ebp
ret