Function at 0x4061f8
Capabilities:
Encode data using xor

Disassembly:
cmp byte [ebp - 0xc], 0
je 0x4061c6
mov eax, dword [ebp - 0x18]
xor edx, edx
jmp 0x4061d9
movsx eax, word [ebp - 0x40]
cmp eax, dword [ebp - 0x18]
jg 0x4061d2
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 0x4061f6
cmp esi, dword [ebp + 8]
jne 0x4061f6
mov al, 0x2d
stosb byte es:[edi], al
lodsb al, byte [esi]
cmp al, 0xbf
sbb cl, byte [edi]
cdq
cmp byte [ecx - 0x38db4f09], al
push ebp
push edi
mov edx, 0x5080226
mov edi, 0xa025800
xor edx, edi
pop esi
xor edx, esi
xor esi, esi
add esi, edx
mov ecx, 0xffffffff
xor esi, ecx
and esi, 0x6214a0e4
and edx, 0x9deb5f1b
or edx, esi
xor esi, esi
add esi, edx
push 0x4345c1f6
mov ecx, 0x4345c1f7
pop edi
xor ecx, edi
sub esi, ecx
mov eax, dword [esi + 1]
mov esi, 0x4b7a90bc
xor esi, 0x25ffad61
mov ebx, 0x28ac11fb
xor esi, ebx
mov edi, 0x5551e0f4
xor edi, 0x6bde5013
xor esi, edi
mov ebx, 0x7036eeb3
xor esi, ebx
xor esi, 0x8907272
mov edi, 4
sub esp, edi
mov edx, 0
xor edx, esp
mov dword [edx], esi
mov ecx, esp
push ecx
pop ebx
mov edi, 0x70a35e56
xor edi, 0x70a35e52
sub esp, edi
mov dword [esp], ebx
mov ecx, 0x12011000
mov edi, 0x61442000
xor ecx, edi
push 0x2812f931
mov ebx, 0x2c2079f9
pop esi
xor ebx, esi
xor ecx, ebx
mov ebx, 0x69ea662d
xor ebx, 0x6126d047
xor ecx, ebx
mov edx, ecx
xor edx, 0xffffffff
and edx, 0x7fbb06e2
and ecx, 0x8044f91d
or ecx, edx
mov ebx, 0xfffffffc
add esp, ebx
mov esi, esp
mov dword [esi], ecx
mov esi, 0x15100fe4
xor esi, 0x60cb4ded
push esi
mov edi, 0x52b1220
mov esi, 0x290a11e
xor edi, esi
pop edx
xor edi, edx
mov esi, edi
push esi
push 0x73cdc80d
mov ebx, 0x61cded1d
pop edx
xor ebx, edx
push 0x7f978592
mov esi, 0x1ff7c5b5
pop edx
xor esi, edx
xor ebx, esi
pop ecx
xor ebx, ecx
mov esi, 4
sub esp, esi
mov edx, 0
xor edx, esp
mov dword [edx], ebx
mov ecx, 0xa80
mov edx, 0x255007
xor ecx, edx
mov ebx, 0x60000100
mov edx, 0x888440
xor ebx, edx
xor ecx, ebx
push 0x573e4643
mov ebx, 0x1cd9dac0
pop edx
xor ebx, edx
xor ecx, ebx
mov edx, 0x66ccaf49
xor ecx, edx
xor ecx, 0x4dc6fc0d
mov ebx, ecx
mov edx, ebx
mov esi, 0xfffffffc
add esp, esi
mov dword [esp], edx
call eax
pop ecx
mov edx, 0x24260813
mov ecx, 0x1a404
xor edx, ecx
push edx
mov ecx, 0x489aa3b2
mov esi, 0x5fa8f537
xor esi, ecx
pop eax
xor esi, eax
mov ecx, esi
add esp, 0xfffffffc
mov dword [esp], ecx
push 0x7b6b5950
mov edx, 0x28c390ff
pop esi
xor edx, esi
mov esi, 0x5d694cd0
mov ebx, 0x3dd47cc8
xor ebx, esi
xor ebx, edx
pop edi
xor ebx, edi
mov edi, 0x4e3b3716
xor edi, 0x5c400e98
push edi
mov edi, 0x135a44ad
mov esi, 0x345c9bc1
xor esi, edi
pop ecx
xor esi, ecx
mov edi, esi
add esp, 0xfffffffc
mov dword [esp], edi
push 0x2aa74a5
mov ecx, 0x5a96f9f
pop esi
xor ecx, esi
push 0x6d8f4a9a
mov eax, 0x5fb1d72e
pop esi
xor eax, esi
xor eax, ecx
pop edx
xor eax, edx
mov edi, 0x7ba8cdda
xor edi, 0x18a2b60
push edi
mov edx, 0xb119465
xor edx, 0x7133689f
pop esi
xor edx, esi
mov edi, 0x2ca81b36
mov esi, 0x3ffcc8eb
xor esi, edi
mov edi, 0x113713ea
mov ecx, 0x223803d
xor ecx, edi
xor ecx, esi
xor edx, ecx
push ebx
pop edi
push edi
pop esi
push esi
pop ecx
mov edi, 0xfffffffc
add esp, edi
mov dword [esp], ecx
push edx
pop esi
mov ecx, esi
push 0x13f2216c
mov esi, 0x13f22168
pop edi
xor esi, edi
sub esp, esi
mov dword [esp], ecx
xor ebx, ebx
mov bl, byte [eax]
add edx, ebx
mov bl, byte [edx]
pop edx
mov byte [eax], bl
dec eax
pop ebx
mov esi, 1
mov edi, 0
xor esi, edi
mov ecx, 0
mov edi, 0
xor ecx, edi
xor esi, ecx
sub ebx, esi
mov edi, ebx
mov esi, edi
xor ecx, ecx
add ecx, esi
or ecx, 0
jne 0x406429
mov edi, 0x20004010
mov eax, 0x1000a0
xor edi, eax
mov esi, 0x28de2a3d
xor esi, 0x305f2a79
xor edi, esi
mov eax, edi
push eax
push 0xa43e63a
mov edx, 0x55a12248
pop esi
xor edx, esi
mov edi, 0x6733d9ce
xor edx, edi
pop ecx
xor edx, ecx
call edx
pop ecx
pop ecx
ret