Function at 0x434df0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov eax, dword [esp + 0x18]
sub esp, 0xd2c
cmp eax, 4
jl 0x434e11
push str.________main_sort_initialise_..._n
push 0x461a70
call fcn.0043a165
add esp, 8
push ebx
push ebp
push esi
mov esi, dword [esp + 0xd48]
push edi
mov ecx, 0x10001
lea eax, [esi + 0x40000]
xor ebx, ebx
mov dword [eax], ebx
sub eax, 4
dec ecx
jne 0x434e29
mov eax, dword [esp + 0xd50]
mov ebp, dword [esp + 0xd44]
xor ecx, ecx
dec eax
mov ch, byte [ebp]
cmp eax, 3
jl 0x434eb7
mov edx, dword [esp + 0xd48]
lea edi, [edx + eax*2 - 4]
xor edx, edx
mov word [edi + 4], bx
mov dh, byte [eax + ebp]
sub eax, 4
sar ecx, 8
or ecx, edx
sub edi, 8
mov edx, dword [esi + ecx*4]
inc edx
mov dword [esi + ecx*4], edx
xor edx, edx
mov word [edi + 0xa], bx
mov dh, byte [eax + ebp + 3]
sar ecx, 8
or ecx, edx
mov edx, dword [esi + ecx*4]
inc edx
mov dword [esi + ecx*4], edx
xor edx, edx
mov word [edi + 8], bx
mov dh, byte [eax + ebp + 2]
sar ecx, 8
or ecx, edx
mov edx, dword [esi + ecx*4]
inc edx
mov dword [esi + ecx*4], edx
xor edx, edx
mov word [edi + 6], bx
mov dh, byte [eax + ebp + 1]
sar ecx, 8
or ecx, edx
mov edx, dword [esi + ecx*4]
inc edx
cmp eax, 3
mov dword [esi + ecx*4], edx
jge 0x434e55
cmp eax, ebx
jl 0x434ee1
mov edx, dword [esp + 0xd48]
lea edi, [edx + eax*2]
xor edx, edx
mov word [edi], bx
mov dh, byte [eax + ebp]
sub edi, 2
sar ecx, 8
or ecx, edx
mov edx, dword [esi + ecx*4]
inc edx
dec eax
cmp eax, ebx
mov dword [esi + ecx*4], edx
jge 0x434ec5
mov ecx, dword [esp + 0xd48]
mov edx, dword [esp + 0xd50]
xor eax, eax
lea ecx, [ecx + edx*2]
lea edi, [edx + ebp]
mov dl, byte [eax + ebp]
add ecx, 2
mov byte [edi + eax], dl
mov word [ecx - 2], bx
inc eax
cmp eax, 0x22
jl 0x434ef7
cmp dword [esp + 0xd54], 4
jl 0x434f26
push str.________bucket_sorting_..._n
push 0x461a70
call fcn.0043a165
add esp, 8
mov eax, dword [esp + 0xd5c]
cmp eax, ebx
je 0x434f3b
mov ecx, dword [esp + 0xd60]
push ecx
call eax
lea eax, [esi + 4]
mov ecx, 0x10000
mov edx, dword [eax - 4]
mov ebx, dword [eax]
add ebx, edx
mov dword [eax], ebx
add eax, 4
dec ecx
jne 0x434f43
mov eax, dword [esp + 0xd50]
xor edx, edx
mov dh, byte [ebp]
dec eax
cmp eax, 3
jl 0x434fef
mov ebx, dword [esp + 0xd40]
xor ecx, ecx
mov ch, byte [eax + ebp]
mov cl, dh
mov edx, ecx
and ecx, 0xffff
lea edi, [esi + ecx*4]
mov ecx, dword [esi + ecx*4]
dec ecx
mov dword [edi], ecx
mov dword [ebx + ecx*4], eax
xor ecx, ecx
mov ch, byte [eax + ebp - 1]
mov cl, dh
mov edx, ecx
and ecx, 0xffff
lea edi, [esi + ecx*4]
mov ecx, dword [esi + ecx*4]
dec ecx
mov dword [edi], ecx
lea edi, [eax - 1]
mov dword [ebx + ecx*4], edi
xor ecx, ecx
mov ch, byte [eax + ebp - 2]
mov cl, dh
mov edx, ecx
and ecx, 0xffff
lea edi, [esi + ecx*4]
mov ecx, dword [esi + ecx*4]
dec ecx
mov dword [edi], ecx
lea edi, [eax - 2]
mov dword [ebx + ecx*4], edi
xor ecx, ecx
mov ch, byte [eax + ebp - 3]
mov cl, dh
mov edx, ecx
and ecx, 0xffff
lea edi, [esi + ecx*4]
mov ecx, dword [esi + ecx*4]
dec ecx
mov dword [edi], ecx
lea edi, [eax - 3]
sub eax, 4
mov dword [ebx + ecx*4], edi
cmp eax, 3
jge 0x434f6f
test eax, eax
jl 0x435018
mov ebx, dword [esp + 0xd40]
xor ecx, ecx
mov ch, byte [eax + ebp]
mov cl, dh
mov edx, ecx
and ecx, 0xffff
lea edi, [esi + ecx*4]
mov ecx, dword [esi + ecx*4]
dec ecx
mov dword [edi], ecx
mov dword [ebx + ecx*4], eax
dec eax
jns 0x434ffa
xor edx, edx
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x3c]
lea ebx, [esp + 0x13c]
rep stosd dword es:[edi], eax
mov dword [ebx], edx
inc edx
add ebx, 4
cmp edx, 0xff
jle 0x43502e
mov ecx, 1
lea ecx, [ecx + ecx*2 + 1]
cmp ecx, 0x100
jle 0x435041
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, edx
cmp ecx, 0xff
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], ecx
jg 0x43516f
lea edi, [ecx*4]
mov ebp, edi
mov dword [esp + 0x1c], ebp
mov ecx, dword [esp + 0xd5c]
test ecx, ecx
je 0x4350a4
mov eax, dword [esp + 0x18]
mov ebx, 0x64
cdq
idiv ebx
cmp edx, 0x63
jne 0x4350a4
mov edx, dword [esp + 0xd60]
push edx
call ecx
mov ecx, dword [esp + ebp + 0x13c]
mov eax, ebp
sub eax, edi
mov dword [esp + 0x28], ecx
lea edx, [ecx + 1]
mov dword [esp + 0x24], eax
shl edx, 0xa
mov eax, ebp
mov ebx, dword [esp + 0x18]
mov edx, dword [edx + esi]
sub eax, edi
shl ecx, 0xa
sub edx, dword [ecx + esi]
mov ecx, dword [esp + eax + 0x13c]
mov eax, dword [esp + eax + 0x13c]
inc ecx
shl ecx, 0xa
shl eax, 0xa
mov ecx, dword [ecx + esi]
sub ecx, dword [eax + esi]
cmp ecx, edx
jbe 0x43513d
mov eax, ebp
mov ecx, eax
sub ecx, edi
mov ecx, dword [esp + ecx + 0x13c]
mov dword [esp + eax + 0x13c], ecx
mov ecx, dword [esp + 0x20]
sub ebx, ecx
sub eax, edi
dec ecx
cmp ebx, ecx
jle 0x43513d
mov ecx, eax
sub ecx, edi
mov dword [esp + 0x24], ecx
mov ecx, eax
sub ecx, edi
mov ebp, dword [esp + ecx + 0x13c]
mov ecx, dword [esp + ecx + 0x13c]
inc ebp
shl ebp, 0xa
shl ecx, 0xa
mov ebp, dword [esi + ebp]
sub ebp, dword [ecx + esi]
cmp ebp, edx
mov ebp, dword [esp + 0x1c]
ja 0x4350ef
mov edx, dword [esp + 0x28]
add ebp, 4
mov dword [esp + ebx*4 + 0x13c], edx
mov edx, dword [esp + 0x18]
inc edx
cmp ebp, 0x3fc
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebp
jle 0x43507e
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0xd44]
cmp ecx, 1
jne 0x43504d
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x13c]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0xd5c]
test ecx, ecx
je 0x4351b3
mov eax, dword [esp + 0x18]
mov edi, 0x64
cdq
idiv edi
cmp edx, 0x63
jne 0x4351b3
mov edx, dword [esp + 0xd60]
push edx
call ecx
mov eax, dword [esp + 0x20]
mov ebx, dword [eax]
xor eax, eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x435296
shl ebx, 8
add ebx, eax
mov ebp, dword [esi + ebx*4]
test ebp, 0x200000
jne 0x43527c
mov edi, dword [esi + ebx*4 + 4]
and ebp, 0xffdfffff
and edi, 0xffdfffff
dec edi
cmp edi, ebp
jle 0x43527c
cmp dword [esp + 0xd54], 4
jl 0x435229
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, edi
sub ecx, ebp
inc ecx
push ecx
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
push str.________qsort__0x_x__0x_x____done__d___this__d_n
push 0x461a70
call fcn.0043a165
add esp, 0x18
mov edx, dword [esp + 0xd58]
mov eax, dword [esp + 0xd50]
mov ecx, dword [esp + 0xd48]
push edx
mov edx, dword [esp + 0xd48]
push 2
push edi
push ebp
push eax
mov eax, dword [esp + 0xd54]
push ecx
push edx
push eax
call fcn.00435580
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0xd78]
sub edi, ebp
add esp, 0x20
lea edx, [ecx + edi + 1]
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x1c], edx
jl 0x43556c
mov eax, dword [esi + ebx*4]
mov ebp, dword [esp + 0xd44]
or eax, 0x200000
mov dword [esi + ebx*4], eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
inc eax
cmp eax, 0xff
mov dword [esp + 0x14], eax
jle 0x4351c3
mov cl, byte [esp + ebx + 0x3c]
lea eax, [esp + ebx + 0x3c]
test cl, cl
mov dword [esp + 0x38], eax
je 0x4352c3
push 0x3ee
call fcn.0042d240
add esp, 4
lea ecx, [esi + ebx*4]
xor eax, eax
mov dword [esp + 0x30], ecx
mov edx, dword [ecx]
add eax, 4
and edx, 0xffdfffff
add ecx, 0x400
mov dword [esp + eax + 0x538], edx
mov edx, dword [ecx - 0x3fc]
and edx, 0xffdfffff
dec edx
cmp eax, 0x3fc
mov dword [esp + eax + 0x938], edx
jle 0x4352cc
mov eax, ebx
lea edx, [esp + ebx*4 + 0x53c]
shl eax, 0xa
add eax, esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], eax
mov edi, dword [eax]
mov eax, dword [edx]
and edi, 0xffdfffff
cmp edi, eax
jge 0x43538d
mov ecx, dword [esp + 0xd40]
lea eax, [ecx + edi*4]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
dec ecx
jns 0x435341
add ecx, dword [esp + 0xd50]
mov al, byte [ecx + ebp]
mov byte [esp + 0x2c], al
mov eax, dword [esp + 0x2c]
and eax, 0xff
cmp byte [esp + eax + 0x3c], 0
jne 0x43537b
mov edx, dword [esp + eax*4 + 0x53c]
mov ebx, dword [esp + 0xd40]
lea eax, [esp + eax*4 + 0x53c]
mov dword [ebx + edx*4], ecx
mov ebx, dword [esp + 0x10]
inc edx
mov dword [eax], edx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov eax, dword [edx]
inc edi
add ecx, 4
cmp edi, eax
mov dword [esp + 0x14], ecx
jl 0x435331
lea ecx, [ebx + 1]
lea edi, [esp + ebx*4 + 0x93c]
shl ecx, 0xa
mov dword [esp + 0x14], edi
mov edx, dword [ecx + esi]
lea eax, [ecx + esi]
and edx, 0xffdfffff
mov dword [esp + 0x24], eax
mov eax, dword [edi]
dec edx
cmp edx, eax
jle 0x43541c
mov eax, dword [esp + 0xd40]
lea ecx, [eax + edx*4]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
dec ecx
jns 0x4353d3
add ecx, dword [esp + 0xd50]
mov al, byte [ecx + ebp]
mov byte [esp + 0x2c], al
mov eax, dword [esp + 0x2c]
and eax, 0xff
mov bl, byte [esp + eax + 0x3c]
test bl, bl
jne 0x43540a
mov edi, dword [esp + eax*4 + 0x93c]
mov ebx, dword [esp + 0xd40]
lea eax, [esp + eax*4 + 0x93c]
mov dword [ebx + edi*4], ecx
dec edi
mov dword [eax], edi
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [edi]
dec edx
sub ecx, 4
cmp edx, eax
mov dword [esp + 0x10], ecx
jg 0x4353c3
mov ecx, dword [esp + 0x28]
mov edi, dword [edi]
mov eax, dword [ecx]
lea edx, [eax - 1]
cmp edx, edi
je 0x435448
test eax, eax
jne 0x43543b
mov eax, dword [esp + 0xd50]
dec eax
cmp edi, eax
je 0x435448
push 0x3ef
call fcn.0042d240
add esp, 4
mov eax, dword [esp + 0x30]
mov ecx, 0x100
mov ebx, dword [eax]
add eax, 0x400
or ebx, 0x200000
dec ecx
mov dword [eax - 0x400], ebx
jne 0x435451
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
cmp eax, 0xff
mov byte [ecx], 1
jge 0x43551f
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov edx, dword [edx]
mov eax, dword [eax]
and edx, 0xffdfffff
and eax, 0xffdfffff
sub eax, edx
cmp eax, 0xfffe
jle 0x4354ac
inc ecx
mov edi, eax
sar edi, cl
cmp edi, 0xfffe
jg 0x43549f
dec eax
mov edi, eax
mov dword [esp + 0x24], eax
test edi, edi
jl 0x435509
mov eax, dword [esp + 0xd40]
add edx, edi
lea edx, [eax + edx*4]
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0xd48]
mov edx, dword [eax]
mov eax, edi
sar eax, cl
cmp edx, 0x22
mov word [ebx + edx*2], ax
jge 0x4354f5
mov ebx, dword [esp + 0xd50]
add edx, ebx
mov ebx, dword [esp + 0xd48]
mov word [ebx + edx*2], ax
mov edx, dword [esp + 0x10]
dec edi
sub edx, 4
test edi, edi
mov dword [esp + 0x10], edx
jge 0x4354c7
mov eax, dword [esp + 0x24]
sar eax, cl
cmp eax, 0xffff
jle 0x43551f
push 0x3ea
call fcn.0042d240
add esp, 4
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
inc eax
add edx, 4
cmp eax, 0xff
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
jle 0x43518d
cmp dword [esp + 0xd54], 4
jl 0x43556c
mov ecx, dword [esp + 0xd50]
mov eax, dword [esp + 0x1c]
mov edx, ecx
sub edx, eax
push edx
push eax
push ecx
push str._________d_pointers___d_sorted___d_scanned_n
push 0x461a70
call fcn.0043a165
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd2c
ret