Function at 0x406210
Capabilities:
Encode data using xor

Disassembly:
cmp byte [ebp - 0xc], 0
je 0x4061b6
mov eax, dword [ebp - 0x18]
xor edx, edx
jmp 0x4061c9
movsx eax, word [ebp - 0x40]
cmp eax, dword [ebp - 0x18]
jg 0x4061c2
mov eax, dword [ebp - 0x18]
movsx edx, word [ebp - 0x40]
sub edx, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], edx
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 4]
lea ebx, [ebp - 0x3d]
cmp byte [ebp - 0x3e], 0
je 0x4061e6
cmp esi, dword [ebp + 8]
jne 0x4061e6
mov al, 0x2d
stosb byte es:[edi], al
lodsb al, byte [esi]
cmp al, 0x23
je 0x406212
cmp al, 0x30
je 0x406212
cmp al, 0x2e
je 0x4061e6
cmp al, 0x2c
je 0x4061e6
cmp al, 0x27
je 0x406219
cmp al, 0x22
je 0x406219
cmp al, 0x45
je 0x406227
cmp al, 0x65
je 0x406227
cmp al, 0x3b
je 0x40625e
or al, al
je 0x40625e
stosb byte es:[edi], al
mov ebx, 0x420050
add byte [edx], al
mov esi, 0x80008
xor ebx, esi
push 0x6e6775c6
add byte [ecx], dh
push 0x6e6775c6
mov edx, 0x7e4675e5
pop esi
xor edx, esi
xor ebx, edx
mov esi, 0x45a4e2d3
xor esi, 0x558f33c0
xor ebx, esi
mov ecx, 0x5f8aa314
xor ecx, 0x5f8aa314
xor ecx, ebx
mov edi, 0xffffff98
add ecx, edi
push 0xd93abacf
mov esi, 0x26c54530
pop edi
xor esi, edi
add ecx, esi
mov eax, dword [ecx + 0x69]
push 0x16ea7107
mov ebx, 0x16ea7107
pop ecx
xor ebx, ecx
mov ecx, 0x6c1166f6
mov edi, 0x6c1166f6
xor edi, ecx
xor ebx, edi
mov edx, 0
mov esi, 0
xor edx, esi
mov esi, 0x7d7e6c19
mov ecx, 0x7d7e6c19
xor ecx, esi
xor edx, ecx
xor ebx, edx
mov esi, 4
sub esp, esi
push esp
pop ecx
mov dword [ecx], ebx
mov ebx, esp
mov edi, 0xfffffffc
add esp, edi
xor edx, edx
add edx, esp
mov dword [edx], ebx
mov esi, 0x6314a881
mov edi, 0x829125c
xor esi, edi
push esi
mov esi, 0x30c831f4
mov ebx, 0x5bf58b29
xor ebx, esi
pop edx
xor ebx, edx
mov esi, 0x59851025
mov edi, 0x2248c6ca
xor esi, edi
push esi
mov ecx, 0x1939dc55
xor ecx, 0x62f40afa
pop edx
xor ecx, edx
xor ebx, ecx
xor edx, edx
add edx, ebx
mov edi, 4
sub esp, edi
mov dword [esp], edx
mov edx, 0x7d67ccec
xor edx, 0xa5ec259
push edx
mov ebx, 0x24200804
mov edx, 0x531986b1
xor ebx, edx
pop ecx
xor ebx, ecx
mov edi, 0x580205a
mov ecx, 0x12320520
xor edi, ecx
push 0x144a4215
mov esi, 0x3f8736f
pop ecx
xor esi, ecx
xor esi, edi
xor ebx, esi
mov edi, 0xfffffffc
add esp, edi
mov edx, esp
mov ecx, edx
mov dword [ecx], ebx
mov ebx, 0x42ce6293
xor ebx, 0x674e7c79
push ebx
push 0x70785a6a
mov ecx, 0x5ed06852
pop ebx
xor ecx, ebx
pop edi
xor ecx, edi
mov ebx, ecx
push ebx
push 0x6d0c8400
mov ebx, 0x802c61d
pop edi
xor ebx, edi
push ebx
mov edx, 0x3d144af0
xor edx, 0x5372343f
pop ecx
xor edx, ecx
pop esi
xor edx, esi
mov ebx, 4
sub esp, ebx
mov edi, esp
mov dword [edi], edx
call eax
pop esi
push 0x12ee742f
mov ecx, 0x13fefca8
pop ebx
xor ecx, ebx
push 0x376754a6
mov eax, 0x776754e6
pop ebx
xor eax, ebx
xor ecx, eax
mov edx, ecx
mov ebx, edx
mov edx, ebx
xor edx, 0xffffffff
and edx, 0xffffffff
and ebx, 0
or ebx, edx
and ebx, 0x41108be2
and ecx, 0xbeef741d
or ecx, ebx
mov edi, 0x794d499a
xor edi, 0x53844f9f
push edi
mov eax, 0x9b00078
mov edi, 0x463303
xor eax, edi
pop esi
xor eax, esi
add esp, 0xfffffffc
mov edi, esp
mov dword [edi], eax
push 0x53f36e96
mov esi, 0xde3527d
pop edi
xor esi, edi
push esi
push 0x776006b0
mov ebx, 0xa0f6f56
pop esi
xor ebx, esi
pop eax
xor ebx, eax
pop edx
xor ebx, edx
mov eax, 0x737781ca
xor eax, 0x6315301e
push eax
mov esi, 0x223060
mov eax, 0x10000d10
xor esi, eax
pop edi
xor esi, edi
mov edi, 0x4b01ca75
xor edi, 0x39e8bd72
push edi
push 0x28388eeb
mov edx, 0x5ad1f9ac
pop edi
xor edx, edi
pop eax
xor edx, eax
xor esi, edx
mov edx, 0xfffffffc
add esp, edx
mov edi, 0x781ebb1f
xor edi, 0x781ebb1f
xor edi, esp
mov dword [edi], ecx
mov edi, 0x8313b5b
xor edi, 0xf7cec4a7
add esp, edi
mov edi, esp
push edi
pop edx
mov dword [edx], esi
xor ecx, ecx
mov cl, byte [ebx]
add esi, ecx
mov cl, byte [esi]
pop esi
mov byte [ebx], cl
mov edx, 0xd1f88f8
xor edx, 0xf2e07707
add ebx, edx
pop ecx
dec ecx
cmp ecx, 0
jne 0x406447
mov edx, 0x3b76fc36
xor edx, 0x4a5e9e65
mov edi, 0x2a6d42ab
xor edx, edi
push edx
pop esi
mov eax, 0xffffffff
xor esi, eax
and esi, 0x5b057db7
and edx, 0xa4fa8248
or edx, esi
call edx
pop ecx
pop ecx
ret