Function at 0x402e81
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x4381b0]
or dword [0x45bdff], 0x45bca0
mov eax, dword [eax + 0x198]
adc dword [0x45be0b], 0x19fb
and dword [eax], 0
or dword [0x45bd9b], ecx
mov eax, dword [0x4381b0]
mov eax, dword [eax + 0x198]
adc dword [0x45bd67], 0x45bd9f
sub esp, 0x30
mov dword [0x45bca0], 0x771b
cmp dword [eax], 0
jne 0x403537
and dword [0x45bd67], 0
jmp 0x402ef3
mov edx, dword [0x45bd67]
inc edx
mov dword [0x45bd67], edx
cmp dword [0x45bd67], 0x14
jae 0x402f71
cmp dword [0x45bd67], 0x1d
jne 0x402f0d
jmp 0x402ee6
mov dword [ebp - 0xc], 0xdf2ef1b
xor edx, 0x5bed
mov dword [ebp - 0x2c], 0xdf2efe7
lea eax, [ebp - 0x24]
mov dword [ebp - 0x1c], eax
or edx, edx
lea eax, [ebp - 0x14]
adc edx, ecx
push edi
sub edi, edx
mov dword [ebp - 0x30], eax
and dword [0x45bd6f], 0
mov edx, dword [0x45bd6f]
inc edx
mov dword [0x45bd6f], edx
cmp dword [0x45bd6f], 5
jne 0x402fbc
cmp dword [0x45bd6f], 4
jne 0x402fd8
xor edx, edx
or edx, dword [0x45bd6f]
inc edx
mov dword [0x45bd6f], edx
cmp dword [0x45bd6f], 0x10
jb 0x402fa2
lea eax, [ebp - 8]
or dword [0x45bd73], 0x5ba
push ebx
mov edx, dword [0x45bd5f]
sub dword [0x45bcb4], edx
mov dword [ebp - 0x28], eax
or ecx, dword [0x45bd43]
mov eax, 0x75683565
and edi, edi
mov ecx, 0x789ada7e
xor edx, edx
xor edx, dword [0x45bda3]
and dword [0x45bd77], edx
mov edi, 0x549e
and dword [0x45bd73], 0
jmp 0x403043
mov ebx, dword [0x45bd73]
inc ebx
mov dword [0x45bd73], ebx
cmp dword [0x45bd73], 0x1e
jae 0x40306c
cmp dword [0x45bd73], 0x1f
jne 0x40305d
jmp 0x403036
push esi
mov ebx, 0x1000
add edx, edx
mov edx, dword [ebp - 0xc]
adc dword [0x45bd63], 0x2798
xor edx, eax
and dword [0x45bcb4], 0x5688
sub edx, ecx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x1c]
sbb esi, 0x2b28
mov dword [edx], 0xdf3ef1b
movzx esi, word [0x45bd43]
and dword [0x45bcac], esi
mov edx, dword [ebp - 0x1c]
and dword [0x45bd5f], 0
jmp 0x4030cd
mov esi, dword [0x45bd5f]
inc esi
mov dword [0x45bd5f], esi
cmp dword [0x45bd5f], 0x1a
jae 0x4030ec
cmp dword [0x45bd5f], 0x28
jne 0x4030e7
jmp 0x4030c0
mov edx, dword [edx]
and dword [0x45bdb7], ecx
xor edx, eax
xor esi, dword [0x45bd47]
sub edx, ecx
mov dword [ebp - 0x24], edx
mov edx, dword [0x438280]
and dword [0x45bca0], 0x5d5f
mov edx, dword [edx]
xor dword [0x45bdfb], 0x45bd63
mov esi, dword [ebp - 0x30]
add dword [0x45bd9f], 0x65a6
mov edx, dword [edx]
add dword [0x45bdb7], 0x45bca8
add edx, dword [esi]
and dword [0x45bd9b], 0
mov esi, dword [0x45bd9b]
inc esi
mov dword [0x45bd9b], esi
cmp dword [0x45bd9b], 0xb
jne 0x40315c
cmp dword [0x45bd9b], 0xa
jne 0x403176
mov esi, dword [0x45bd9b]
inc esi
mov dword [0x45bd9b], esi
cmp dword [0x45bd9b], 0x1f
jb 0x403142
mov dword [ebp - 0x20], edx
and esi, 0x6cfe
mov dword [ebp - 0x18], 0xdf2ef1a
mov dword [ebp - 0x18], 1
mov word [ebp - 4], di
and dword [0x45bdf3], 0
jmp 0x4031ba
mov esi, dword [0x45bdf3]
inc esi
mov dword [0x45bdf3], esi
cmp dword [0x45bdf3], 0x1c
jae 0x403236
cmp dword [0x45bdf3], 0x24
jne 0x4031d4
jmp 0x4031ad
mov esi, dword [ebp - 0x24]
not edx
mov edx, dword [ebp - 0x20]
and dword [0x45be0b], 0x4fe8
mov edx, dword [edx]
xor dword [0x45bdf7], 0x5704
dec esi
adc dword [0x45bda7], 0x45bca4
not esi
adc dword [0x45bd6b], 0x45bdaf
and edx, esi
xor dword [0x45bdab], edx
mov esi, dword [ebp - 0x28]
add dword [0x45bdc3], 0x45bcb4
mov dword [esi], edx
sbb dword [0x45bd6b], edi
mov edx, dword [ebp - 8]
mov dword [ebp - 0x18], edx
mov esi, dword [ebp - 0x18]
sbb edx, dword [0x45bdb7]
movzx esi, word [esi]
and dword [0x45bd5f], 0
jmp 0x4032b6
mov edx, dword [0x45bd5f]
inc edx
mov dword [0x45bd5f], edx
cmp dword [0x45bd5f], 0x13
jae 0x4032f1
cmp dword [0x45bd5f], 6
jne 0x4032d0
cmp dword [0x45bd5f], 5
jne 0x4032ec
xor edx, edx
or edx, dword [0x45bd5f]
inc edx
mov dword [0x45bd5f], edx
jmp 0x4032a9
mov edx, 0x252
add dword [0x45bdf3], 0x45bd4b
sub si, dx
xor esi, 0x365
mov dword [0x45be0b], 0x46ee
mov word [ebp - 4], si
mov dword [0x45bdb3], 0x23ec
mov dword [ebp - 0x20], 0
jmp 0x403358
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
sub edx, dword [esi]
mov esi, dword [ebp - 0x28]
mov dword [esi], edx
mov edx, dword [ebp - 8]
mov dword [ebp - 0x18], edx
mov esi, dword [ebp - 0x18]
movzx esi, word [esi]
mov edx, 0x252
sub si, dx
xor esi, 0x365
mov word [ebp - 4], si
mov dx, word [ebp - 4]
cmp dx, di
jne 0x40332d
add dword [ebp - 8], ebx
dec ebx
cmp ebx, 1
jae 0x403072
dec dword [ebp - 8]
mov edx, dword [ebp - 8]
mov esi, dword [0x4381b0]
mov esi, dword [esi + 0x198]
mov dword [esi], edx
mov dword [ebp - 0x18], 0xdf2ef1b
mov edx, dword [ebp - 0x18]
xor edx, eax
sub edx, ecx
mov dword [ebp - 0x18], edx
mov edx, dword [0x4381b0]
mov esi, dword [edx + 0x198]
mov edx, dword [edx + 0x198]
mov edx, dword [edx]
mov ebx, dword [ebp - 0x18]
mov esi, dword [esi]
mov esi, dword [esi + 0x3c]
lea edx, [edx + ebx*8 + 0x78]
mov edx, dword [edx + esi]
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x20]
xor edx, eax
sub edx, ecx
cmp esi, edx
je 0x403520
mov esi, dword [ebp - 0x20]
mov edx, dword [0x4381b0]
mov edx, dword [edx + 0x198]
add esi, dword [edx]
mov edx, dword [0x4381b0]
mov edx, dword [edx + 0x198]
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x20]
mov edx, dword [edx]
mov esi, dword [esi + 0xc]
mov dl, byte [esi + edx]
mov byte [ebp - 3], dl
mov dl, byte [ebp - 3]
add dl, 0x7b
xor dl, 0x94
cmp dl, 0x52
je 0x403534
mov esi, dword [ebp - 0x20]
mov edx, dword [0x4381b0]
mov edx, dword [edx + 0x198]
mov esi, dword [esi + 0xc]
mov edx, dword [edx]
mov dl, byte [esi + edx]
mov byte [ebp - 3], dl
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x10], 0xdf2ee1b
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
xor edx, eax
xor esi, eax
sub edx, ecx
sub esi, ecx
cmp edx, esi
jae 0x403488
lea esi, [edx + 0x789ada7e]
mov dword [ebp - 0x20], esi
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x20]
xor esi, eax
imul esi, ebx
mov ebx, dword [ebp - 0x10]
xor ebx, eax
add esi, ebx
mov ebx, dword [ebp - 0x18]
lea esi, [esi + ebx - 0x789ada7e]
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x10]
xor esi, eax
inc edx
inc dword [ebp - 0x20]
sub esi, ecx
cmp edx, esi
jb 0x403456
mov dl, byte [ebp - 3]
add dl, 0x7b
xor dl, 0x94
cmp dl, 0x72
je 0x403534
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
xor edx, eax
xor esi, eax
sub edx, ecx
sub esi, ecx
cmp edx, esi
jae 0x4034eb
lea esi, [edx + 0x789ada7e]
mov dword [ebp - 0x20], esi
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x20]
xor esi, eax
imul esi, ebx
mov ebx, dword [ebp - 0x10]
xor ebx, eax
add esi, ebx
mov ebx, dword [ebp - 0x18]
lea esi, [esi + ebx - 0x789ada7e]
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x10]
xor esi, eax
inc edx
inc dword [ebp - 0x20]
sub esi, ecx
cmp edx, esi
jb 0x4034b9
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x14]
xor edx, eax
sub edx, ecx
cmp esi, edx
mov edx, dword [ebp - 0x2c]
jae 0x403511
xor edx, eax
mov esi, ecx
sub esi, edx
add esi, dword [ebp - 0x14]
mov dword [ebp - 0x14], esi
jmp 0x403520
mov esi, dword [ebp - 0x14]
xor edx, eax
lea edx, [edx + esi - 0x789ada7e]
mov dword [ebp - 0x14], edx
mov edx, dword [0x4381b0]
mov edx, dword [edx + 0x198]
and dword [edx], 0
jmp 0x40306d
pop esi
pop ebx
pop edi
leave
ret