Function at 0x41f798
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov dword [ebp - 4], 0x1c06
mov dword [ebp - 0x18], 0x2b877
mov dword [ebp - 0x14], 0x350a
mov esi, dword [0x42183c]
mov ecx, dword [0x421838]
and esi, 0x1800
or esi, 0x6136
sub esi, ecx
add esi, 0x106
mov ecx, 0x1bee
mov edi, 0x19ca11aa
jmp 0x41f888
xor edx, edx
mov dword [ebp - 0xc], 0x5398
mov dword [ebp - 8], 0x3555
mov dword [ebp - 0x10], 2
mov eax, dword [ebp - 8]
push 0xc
pop ebx
div ebx
mov edx, dword [ebp - 0xc]
push 0x23
sub eax, edx
mov edx, dword [0x421848]
mov ebx, dword [0x421850]
sub eax, 0x7534
and eax, edx
xor eax, 0x4dd4
mov edx, esi
sub edx, eax
add edx, dword [ebp + 8]
mov eax, dword [0x42184c]
mov dword [ebp - 0xc], edx
xor edx, edx
div ebx
mov ebx, dword [ebp - 0x10]
xor edx, edx
div ebx
xor edx, edx
pop ebx
add eax, 0x6b78
div ebx
mov edx, dword [0x421448]
mov edx, dword [edx + 0x1cc]
and eax, 0x7506
xor eax, 0x50d3
sub edx, eax
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
mov byte [edx + esi], al
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
or eax, 0x264d
sub eax, 0x5a1e
xor edx, edx
div ebx
xor edx, edx
mov ebx, eax
mov eax, 0x5e19
div ebx
add esi, eax
mov edx, dword [0x421840]
mov eax, dword [0x421844]
or edx, eax
or edx, ecx
imul edx, edx, 0x6729
mov eax, edi
sub eax, edx
mov edx, dword [ebp - 4]
add edx, eax
cmp esi, edx
jne 0x41f7e5
mov dword [ebp + 8], 0x599f
mov eax, dword [0x421858]
mov ecx, dword [ebp + 8]
imul eax, ecx
imul eax, eax, 0x15d8
xor edx, edx
mov ecx, 0x33975
div ecx
mov ecx, dword [0x421854]
xor edx, edx
mov edi, 0xd1e8
mov esi, 0x204e6
div ecx
xor edx, edx
lea ecx, [eax + 0x1219]
mov eax, dword [0x421860]
and eax, 0x2fa7
sub eax, edi
div esi
mov esi, dword [0x42185c]
xor edx, edx
div esi
mov esi, 0xa9a
jmp 0x41f9b7
mov dword [ebp - 0x18], 0x723d
mov dword [ebp + 8], 0x224f
mov dword [ebp - 0xc], 0x5b32
mov dword [ebp - 0x14], 0x53ec
mov dword [ebp - 0x10], 0x55bb
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
add eax, 0x16fe
or eax, edx
xor eax, 0x3286
mov edx, ecx
sub edx, eax
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x10]
lea eax, [ebx + eax + 0x4703]
mov ebx, dword [ebp - 0xc]
imul eax, ebx
mov ebx, dword [0x421448]
mov ebx, dword [ebx + 0x1d0]
sub ebx, eax
mov eax, dword [ebp + 0xc]
mov al, byte [edx + eax]
mov byte [ebx + ecx + 0x55bb2539], al
mov edx, dword [0x421868]
mov eax, dword [0x42186c]
mov ebx, dword [0x421864]
sub eax, edx
imul eax, eax, 0x7c2a
xor edx, edx
div ebx
xor edx, edx
mov ebx, 0x204e6
lea ecx, [ecx + eax - 0x684e]
mov eax, dword [0x421860]
and eax, 0x2fa7
sub eax, edi
div ebx
mov ebx, dword [0x42185c]
xor edx, edx
div ebx
add eax, esi
cmp ecx, eax
jbe 0x41f90d
mov dword [ebp + 8], 0x1f23
mov eax, dword [0x421878]
mov ecx, dword [0x421874]
xor eax, ecx
push 0x3e
xor edx, edx
pop ecx
div ecx
push 3
xor edx, edx
mov ecx, eax
mov eax, dword [ebp + 8]
xor eax, ecx
pop ecx
div ecx
mov ecx, eax
mov eax, dword [0x421870]
xor ecx, eax
add ecx, 0x4e27
mov dword [ebp + 8], 0x7be6
mov dword [ebp + 0xc], 0x35fc
mov eax, dword [ebp + 8]
mov edx, dword [0x421898]
or eax, 0x524
imul eax, edx
mov edx, dword [ebp + 0xc]
imul eax, eax, 0x5aec
xor eax, 0x1d298d92
mov esi, ecx
sub esi, eax
mov eax, dword [0x421448]
mov eax, dword [eax + 0x1d4]
add esi, dword [ebp + 0x10]
add eax, ecx
sub eax, edx
mov edx, dword [0x42189c]
mov bl, byte [esi]
mov byte [eax + edx - 0x5017], bl
mov edx, dword [0x42188c]
mov eax, dword [0x421894]
xor edx, eax
mov eax, dword [0x421890]
xor eax, edx
mov edx, dword [0x421888]
mov esi, dword [0x421884]
and eax, 0x7288
add edx, eax
mov eax, dword [0x421880]
xor edx, 0x86dc
add ecx, edx
xor edx, edx
div esi
mov edx, dword [0x42187c]
sub eax, edx
and eax, 0x87a
xor eax, 0x741e
cmp ecx, eax
jb 0x41f9f9
pop edi
pop esi
pop ebx
leave
ret 0xc