Function at 0x434790
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov eax, dword [esp + 0x18]
sub esp, 0xd2c
cmp eax, 4
jl 0x4347b1
push str.________main_sort_initialise_..._n
push 0x45fbd0
call fcn.00439b75
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 0x4347c9
mov eax, dword [esp + 0xd50]
mov ebp, dword [esp + 0xd44]
xor ecx, ecx
dec eax
mov ch, byte [ebp]
cmp eax, 3
jl 0x434857
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 0x4347f5
cmp eax, ebx
jl 0x434881
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 0x434865
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 0x434897
cmp dword [esp + 0xd54], 4
jl 0x4348c6
push str.________bucket_sorting_..._n
push 0x45fbd0
call fcn.00439b75
add esp, 8
mov eax, dword [esp + 0xd5c]
cmp eax, ebx
je 0x4348db
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 0x4348e3
mov eax, dword [esp + 0xd50]
xor edx, edx
mov dh, byte [ebp]
dec eax
cmp eax, 3
jl 0x43498f
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 0x43490f
test eax, eax
jl 0x4349b8
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 0x43499a
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 0x4349ce
mov ecx, 1
lea ecx, [ecx + ecx*2 + 1]
cmp ecx, 0x100
jle 0x4349e1
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 0x434b0f
lea edi, [ecx*4]
mov ebp, edi
mov dword [esp + 0x1c], ebp
mov ecx, dword [esp + 0xd5c]
test ecx, ecx
je 0x434a44
mov eax, dword [esp + 0x18]
mov ebx, 0x64
cdq
idiv ebx
cmp edx, 0x63
jne 0x434a44
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 0x434add
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 0x434add
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 0x434a8f
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 0x434a1e
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0xd44]
cmp ecx, 1
jne 0x4349ed
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 0x434b53
mov eax, dword [esp + 0x18]
mov edi, 0x64
cdq
idiv edi
cmp edx, 0x63
jne 0x434b53
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 0x434c36
shl ebx, 8
add ebx, eax
mov ebp, dword [esi + ebx*4]
test ebp, 0x200000
jne 0x434c1c
mov edi, dword [esi + ebx*4 + 4]
and ebp, 0xffdfffff
and edi, 0xffdfffff
dec edi
cmp edi, ebp
jle 0x434c1c
cmp dword [esp + 0xd54], 4
jl 0x434bc9
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 0x45fbd0
call fcn.00439b75
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.00434f20
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 0x434f0c
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 0x434b63
mov cl, byte [esp + ebx + 0x3c]
lea eax, [esp + ebx + 0x3c]
test cl, cl
mov dword [esp + 0x38], eax
je 0x434c63
push 0x3ee
call fcn.0042cbe0
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 0x434c6c
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 0x434d2d
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 0x434ce1
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 0x434d1b
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 0x434cd1
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 0x434dbc
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 0x434d73
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 0x434daa
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 0x434d63
mov ecx, dword [esp + 0x28]
mov edi, dword [edi]
mov eax, dword [ecx]
lea edx, [eax - 1]
cmp edx, edi
je 0x434de8
test eax, eax
jne 0x434ddb
mov eax, dword [esp + 0xd50]
dec eax
cmp edi, eax
je 0x434de8
push 0x3ef
call fcn.0042cbe0
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 0x434df1
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
cmp eax, 0xff
mov byte [ecx], 1
jge 0x434ebf
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 0x434e4c
inc ecx
mov edi, eax
sar edi, cl
cmp edi, 0xfffe
jg 0x434e3f
dec eax
mov edi, eax
mov dword [esp + 0x24], eax
test edi, edi
jl 0x434ea9
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 0x434e95
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 0x434e67
mov eax, dword [esp + 0x24]
sar eax, cl
cmp eax, 0xffff
jle 0x434ebf
push 0x3ea
call fcn.0042cbe0
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 0x434b2d
cmp dword [esp + 0xd54], 4
jl 0x434f0c
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 0x45fbd0
call fcn.00439b75
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd2c
ret