Function at 0x41ba40
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x2f28
call fcn.0041cd90
mov eax, dword [0x455258]
push ebx
push ebp
push esi
push edi
push 0x41bc90
push 0x118
push eax
push 0x45525c
call dword [sym.imp.MSVCRT.dll_qsort]
mov eax, dword [0x455258]
add esp, 0x10
xor ebx, ebx
mov byte [esp + 0x24], 0
test eax, eax
jle 0x41bacd
mov ebp, dword [esp + 0x2f44]
mov esi, 0x45525c
push ebp
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
je 0x41babd
lea ecx, [esi + 0x18]
lea edi, [esp + 0x24]
push ecx
or ecx, 0xffffffff
xor eax, eax
push esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x4453ac
lea edx, [esp + ecx + 0x30]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
mov eax, dword [0x455258]
inc ebx
add esi, 0x118
cmp ebx, eax
jl 0x41ba88
lea edi, [esp + 0x24]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x24]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea esi, [esp + 0x24]
test ecx, ecx
jle 0x41baf8
mov al, byte [edx]
cmp al, 0x20
je 0x41baf4
cmp al, 9
je 0x41baf4
mov byte [esi], al
inc esi
inc edx
dec ecx
jne 0x41bae7
lea edi, [esp + 0x24]
or ecx, 0xffffffff
xor eax, eax
mov byte [esi], 0
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x44538c
lea eax, [esp + ecx + 0x28]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edi, [esp + 0x2c]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
xor esi, esi
mov ebp, ecx
shr ebp, 4
shl ebp, 4
test ebp, ebp
jle 0x41bb94
mov edi, dword [sym.imp.MSVCRT.dll__isctype]
mov ebx, dword [sym.imp.MSVCRT.dll_tolower]
mov al, byte [esp + esi + 0x24]
test al, 0x80
jne 0x41bb86
mov ecx, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [ecx], 1
jle 0x41bb64
movsx edx, al
push 1
push edx
call edi
add esp, 8
jmp 0x41bb75
mov ecx, dword [sym.imp.MSVCRT.dll__pctype]
movsx eax, al
mov edx, dword [ecx]
mov al, byte [edx + eax*2]
and eax, 1
test eax, eax
je 0x41bb86
movsx eax, byte [esp + esi + 0x24]
push eax
call ebx
add esp, 4
jmp 0x41bb8b
movsx eax, byte [esp + esi + 0x24]
mov byte [esp + esi + 0x24], al
inc esi
cmp esi, ebp
jl 0x41bb44
lea edx, [esp + 0x24]
mov esi, 0x10
lea ecx, [esp + 0x14]
xor edi, edi
sub edx, 0x10
sub esi, ecx
mov dword [esp + 0x10], esi
jmp 0x41bbb2
mov esi, dword [esp + 0x10]
lea eax, [esp + edi + 0x14]
add esi, eax
test edi, edi
mov cl, byte [esi + edx]
mov byte [eax], cl
jle 0x41bbc9
mov bl, byte [esp + edi + 0x13]
xor bl, cl
mov byte [eax], bl
cmp esi, ebp
mov ecx, esi
jge 0x41bbdc
mov bl, byte [esp + ecx + 0x24]
add ecx, 0x10
xor byte [eax], bl
cmp ecx, ebp
jl 0x41bbcf
inc edi
cmp edi, 0x10
jb 0x41bbae
mov eax, dword [esp + 0x2f3c]
lea edx, [esp + 0x2324]
push edx
push 0x100
push eax
call fcn.0041ae00
add esp, 0xc
xor esi, esi
xor edx, edx
lea ecx, [esp + 0x2324]
mov dl, byte [esp + esi + 0x14]
push ecx
push edx
call fcn.0041ada0
add esp, 8
mov byte [esp + esi + 0x14], al
inc esi
cmp esi, 0x10
jb 0x41bc01
mov ebx, dword [esp + 0x2f40]
xor esi, esi
mov byte [ebx], 0
test esi, esi
jle 0x41bc47
mov eax, esi
and eax, reloc.WSOCK32.dll_closesocket
jns 0x41bc40
dec eax
or eax, 0xfffffffc
inc eax
mov eax, 0x445388
je 0x41bc4c
mov eax, 0x446718
xor ecx, ecx
mov edi, ebx
mov cl, byte [esp + esi + 0x14]
push ecx
push eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x445380
add ecx, ebx
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
inc esi
cmp esi, 0x10
jb 0x41bc2e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2f28
ret