Function at 0x42581d
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x90
push ebx
push ebp
push esi
xor esi, esi
cmp byte [0x478e68], 0
push edi
jne 0x4255d1
mov byte [0x478e68], 1
call fcn.004247b0
mov edi, dword [esp + 0xa4]
mov dword [0x450558], esi
mov dword [0x462a68], esi
mov esi, dword [0x16a68a0]
add edi, 8
mov dword [0x460fc4], 0xffffffff
mov eax, dword [edi]
mov ebx, eax
shl ebx, 0x10
mov ecx, eax
mov edx, eax
and ecx, 0xff00
add ebx, ecx
shr edx, 8
shl ebx, 8
and edx, 0xff00
shr eax, 0x18
add ebx, edx
add ebx, eax
mov eax, dword [edi + 4]
add edi, 8
cmp eax, 0x52444849
jne 0x42574d
mov eax, dword [edi]
mov ecx, eax
shl ecx, 0x10
mov edx, eax
and edx, 0xff00
add ecx, edx
mov edx, eax
shr edx, 8
shl ecx, 8
and edx, 0xff00
add ecx, edx
shr eax, 0x18
add ecx, eax
mov dword [0x462a58], ecx
test ecx, ecx
jle 0x425a03
mov ecx, dword [edi + 4]
mov eax, ecx
shl eax, 0x10
mov edx, ecx
and edx, 0xff00
add eax, edx
mov edx, ecx
shr edx, 8
shl eax, 8
and edx, 0xff00
add eax, edx
shr ecx, 0x18
add eax, ecx
mov dword [0x450184], eax
test eax, eax
jle 0x425a03
mov cl, byte [edi + 8]
mov ebp, 1
shl ebp, cl
mov byte [0x16a68a8], cl
test ebp, 0x116
je 0x425a03
mov cl, byte [edi + 9]
mov eax, 1
shl eax, cl
mov byte [0x16a68b0], cl
test al, 0x5d
je 0x425a03
cmp byte [edi + 0xa], 0
jne 0x425a03
cmp byte [edi + 0xb], 0
jne 0x425a03
mov al, byte [edi + 0xc]
cmp al, 2
jae 0x425a03
movzx eax, al
lea edx, [eax*8]
sub edx, eax
mov dword [0x450348], edx
test cl, cl
je 0x425704
cmp cl, 4
jne case.0x4257da.1
mov eax, 0xff
cdq
lea ecx, [ebp - 1]
idiv ecx
xor ecx, ecx
mov esi, 0xff000000
mov dword [0x16a68a0], ebp
imul eax, eax, 0x10101
test ebp, ebp
jle 0x42573e
mov edx, ebp
jmp 0x425730
mov dword [ecx*4 + 0x16a64a0], esi
inc ecx
add esi, eax
cmp ecx, edx
jl 0x425730
mov esi, dword [0x16a68a0]
lea edi, [edi + ebx + 4]
jmp 0x4255f7
cmp eax, 0x45544c50
jne 0x4257bf
mov eax, 0x55555556
imul ebx
mov esi, edx
shr esi, 0x1f
add esi, edx
lea ecx, [esi - 1]
mov dword [0x16a68a0], esi
test ecx, ecx
js case.0x4257da.1
lea edx, [edi + ecx*2]
add edx, ecx
mov eax, dword [edx]
mov esi, eax
shl esi, 0x10
mov ebp, eax
and ebp, 0xff00
add esi, ebp
mov ebp, eax
shl esi, 8
shr ebp, 8
and ebp, 0xff00
add esi, ebp
shr eax, 0x18
add esi, eax
shr esi, 8
or esi, 0xff000000
mov dword [ecx*4 + 0x16a64a0], esi
sub edx, 3
dec ecx
jns 0x425774
mov esi, dword [0x16a68a0]
lea edi, [edi + ebx + 4]
jmp 0x4255f7
cmp eax, 0x44474b62
jne 0x4258c4
movsx eax, byte [0x16a68b0]
cmp eax, 6
ja case.0x4257da.1
jmp dword [eax*4 + 0x42646c]
movzx eax, byte [edi]
movzx edx, byte [edi + 1]
mov cl, byte [0x16a68a8]
shl eax, 8
add eax, edx
imul eax, eax, 0xff
mov ebp, 1
shl ebp, cl
cdq
lea edi, [edi + ebx + 4]
dec ebp
idiv ebp
imul eax, eax, 0x10101
sub eax, 0x1000000
mov dword [0x16a68b4], eax
jmp 0x4255f7
cmp byte [0x16a68a8], 8
jne 0x42584f
movzx eax, byte [edi + 1]
movzx ecx, byte [edi + 3]
movzx edx, byte [edi + 5]
sub eax, 0x100
shl eax, 8
add eax, ecx
shl eax, 8
add eax, edx
mov dword [0x16a68b4], eax
lea edi, [edi + ebx + 4]
jmp 0x4255f7
xor esi, esi
mov ebp, 0xff000000
jmp 0x425860
movzx ecx, byte [edi + esi*2]
movzx eax, byte [edi + esi*2 + 1]
shl ecx, 8
add ecx, eax
mov eax, 0x7f807f81
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, 2
sub ecx, esi
add ecx, ecx
add ecx, ecx
add ecx, ecx
shl edx, cl
inc esi
add ebp, edx
cmp esi, 3
jl 0x425860
mov esi, dword [0x16a68a0]
mov dword [0x16a68b4], ebp
lea edi, [edi + ebx + 4]
jmp 0x4255f7
movzx eax, byte [edi]
mov ecx, dword [eax*4 + 0x16a64a0]
mov dword [0x16a68b4], ecx
lea edi, [edi + ebx + 4]
jmp 0x4255f7
cmp eax, 0x534e5274
jne 0x425978
movsx eax, byte [0x16a68b0]
sub eax, 0
je 0x425956
sub eax, 2
je 0x425920
dec eax
jne case.0x4257da.1
mov eax, ebx
cmp ebx, esi
jl 0x4258ef
mov eax, esi
dec eax
js case.0x4257da.1
jmp 0x425900
movzx edx, byte [edi + eax]
shl edx, 0x18
or edx, 0xffffff
and dword [eax*4 + 0x16a64a0], edx
dec eax
jns 0x425900
lea edi, [edi + ebx + 4]
jmp 0x4255f7
cmp byte [0x16a68a8], 8
jne case.0x4257da.1
movzx eax, byte [edi + 1]
movzx ecx, byte [edi + 3]
movzx edx, byte [edi + 5]
sub eax, 0x100
shl eax, 8
add eax, ecx
shl eax, 8
add eax, edx
mov dword [0x450558], eax
lea edi, [edi + ebx + 4]
jmp 0x4255f7
cmp byte [0x16a68a8], 8
jg case.0x4257da.1
movzx eax, byte [edi + 1]
mov byte [eax*4 + 0x16a64a3], 0
lea edi, [edi + ebx + 4]
jmp 0x4255f7
cmp eax, 0x54414449
jne case.0x4257da.1
mov eax, dword [esp + 0xa8]
lea ecx, [edi + ebx - 4]
mov dword [0x4501dc], edi
mov dword [0x4501dc], ecx
mov ecx, dword [esp + 0xac]
mov dword [0x44796c], ecx
mov ecx, dword [esp + 0xb4]
mov dword [0x460fc0], eax
mov eax, dword [esp + 0xb0]
mov dword [0x4620c8], ecx
movsx ecx, byte [0x16a68b0]
lea edx, [ebx*8]
mov esi, 0x20
sub esi, edx
mov dword [0x450350], eax
xor edx, edx
mov eax, ecx
mov edi, 2
sub eax, edi
mov dword [0x4502ac], esi
mov dword [0x4620d4], edx
je 0x425a31
sub eax, edi
je 0x425a29
sub eax, edi
je 0x425a17
mov dword [0x450330], edx
jmp 0x425a47
mov dword [0x4501dc], edi
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x90
ret
mov dword [0x450338], 3
mov dword [0x45033c], edx
jmp 0x425a37
mov dword [0x450334], edx
jmp 0x425a3d
mov dword [0x450338], edx
mov dword [0x450334], edi
mov dword [0x450330], 1
movsx edx, byte [0x16a68a8]
mov eax, edx
dec eax
je 0x425a9f
dec eax
je 0x425a7d
sub eax, edi
jne 0x425abc
mov eax, 0x10
nop
mov ebx, eax
and ebx, 0xf
mov ebx, dword [ebx*4 + 0x16a64a0]
mov dword [eax*4 + 0x16a64a0], ebx
inc eax
cmp eax, 0x100
jl 0x425a60
jmp 0x425abc
mov eax, 4
mov ebx, eax
and ebx, 3
mov ebx, dword [ebx*4 + 0x16a64a0]
mov dword [eax*4 + 0x16a64a0], ebx
inc eax
cmp eax, 0x100
jl 0x425a82
jmp 0x425abc
mov eax, edi
mov ebx, eax
and ebx, 1
mov ebx, dword [ebx*4 + 0x16a64a0]
mov dword [eax*4 + 0x16a64a0], ebx
inc eax
cmp eax, 0x100
jl 0x425aa1
add ecx, ecx
add ecx, ecx
mov eax, 0x4021301
sar eax, cl
mov ecx, edx
and eax, 0xf
imul eax, dword [0x462a58]
dec ecx
mov dword [0x460f3c], eax
je 0x425aef
dec ecx
je 0x425ae7
sub ecx, edi
jne 0x425afa
inc eax
sar eax, 1
jmp 0x425af5
add eax, 3
sar eax, 2
jmp 0x425af5
add eax, 7
sar eax, 3
mov dword [0x460f3c], eax
inc eax
cmp eax, 0x10000
ja 0x425a09
call fcn.004249f0
mov eax, dword [0x4501dc]
mov edx, esi
sar edx, 3
mov edi, dword [edx + eax]
mov ecx, esi
and ecx, 7
sar edi, cl
mov ebp, 0x4000
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], ebp
and edi, 0xffff
add esi, 0x10
mov dword [0x4502ac], esi
js 0x425b4c
call fcn.00425460
mov esi, dword [0x4502ac]
mov dword [0x16a68a4], edi
mov eax, dword [0x4501dc]
mov edx, esi
sar edx, 3
mov eax, dword [edx + eax]
mov ecx, esi
and ecx, 7
sar eax, cl
and eax, 1
inc esi
mov dword [esp + 0x20], eax
mov dword [0x4502ac], esi
js 0x425b81
call fcn.00425460
mov esi, dword [0x4502ac]
mov eax, dword [0x4501dc]
mov edx, esi
sar edx, 3
mov edi, dword [edx + eax]
mov ecx, esi
and ecx, 7
sar edi, cl
and edi, 3
add esi, 2
mov dword [0x4502ac], esi
js 0x425bae
call fcn.00425460
mov esi, dword [0x4502ac]
test edi, edi
jne 0x425cf8
mov ecx, esi
neg ecx
and ecx, 7
add esi, ecx
mov dword [0x4502ac], esi
js 0x425bd2
call fcn.00425460
mov esi, dword [0x4502ac]
mov eax, dword [0x4501dc]
mov edx, esi
sar edx, 3
mov ebx, dword [edx + eax]
mov ecx, esi
and ecx, 7
sar ebx, cl
and ebx, 0xffff
add esi, 0x10
mov dword [0x4502ac], esi
js 0x425c02
call fcn.00425460
mov esi, dword [0x4502ac]
mov eax, dword [0x4501dc]
mov edx, esi
sar edx, 3
mov edi, dword [edx + eax]
mov ecx, esi
and ecx, 7
sar edi, cl
mov dword [esp + 0x14], ebx
and edi, 0xffff
add esi, 0x10
mov dword [0x4502ac], esi
js 0x425c36
call fcn.00425460
mov esi, dword [0x4502ac]
xor edi, ebx
cmp edi, 0xffff
jne 0x425a09
test ebx, ebx
je 0x4263df
mov edi, 2
cmp dword [esp + 0x10], ebp
jl 0x425ca1
lea ecx, [ebp - 0x4000]
and ecx, 0x7fff
add ecx, 0x448180
push 0x4000
push ecx
call fcn.00424da0
mov edx, dword [0x45055c]
add ebp, 0x4000
add esp, 8
mov dword [esp + 0x18], ebp
cmp edx, dword [0x4620c8]
jl 0x425c9b
cmp dword [0x450348], edi
jl 0x42644a
mov esi, dword [0x4502ac]
mov edx, dword [0x4501dc]
mov eax, esi
sar eax, 3
mov ebx, dword [eax + edx]
mov ecx, esi
and ecx, 7
sar ebx, cl
and ebx, 0xff
add esi, 8
mov dword [0x4502ac], esi
js 0x425cd2
call fcn.00425460
mov esi, dword [0x4502ac]
mov eax, dword [esp + 0x10]
mov ecx, eax
and ecx, 0x7fff
inc eax
dec dword [esp + 0x14]
mov byte [ecx + 0x448180], bl
mov dword [esp + 0x10], eax
jne 0x425c51
jmp 0x4263df
cmp edi, 3
je 0x4263df
cmp edi, 1
jne 0x425e90
mov eax, 8
mov ecx, 0x90
mov edi, 0x4620d8
rep stosd dword es:[edi], eax
mov eax, 9
mov ecx, 0x70
mov edi, 0x462318
rep stosd dword es:[edi], eax
mov eax, 7
mov dword [0x4624d8], eax
mov dword [0x4624dc], eax
mov dword [0x4624e0], eax
mov dword [0x4624e4], eax
mov dword [0x4624e8], eax
mov dword [0x4624ec], eax
mov dword [0x4624f0], eax
mov dword [0x4624f4], eax
mov dword [0x4624f8], eax
mov dword [0x4624fc], eax
mov dword [0x462500], eax
mov dword [0x462504], eax
mov dword [0x462508], eax
mov dword [0x46250c], eax
mov dword [0x462510], eax
mov dword [0x462514], eax
mov dword [0x462518], eax
mov dword [0x46251c], eax
mov dword [0x462520], eax
mov dword [0x462524], eax
mov dword [0x462528], eax
mov dword [0x46252c], eax
mov dword [0x462530], eax
mov dword [0x462534], eax
mov eax, 8
mov dword [0x462538], eax
mov dword [0x46253c], eax
mov dword [0x462540], eax
mov dword [0x462544], eax
mov dword [0x462548], eax
mov dword [0x46254c], eax
mov dword [0x462550], eax
mov dword [0x462554], eax
mov eax, 5
mov dword [esp + 0x1c], 0x120
mov dword [esp + 0x14], 0x20
mov dword [0x462558], eax
mov dword [0x46255c], eax
mov dword [0x462560], eax
mov dword [0x462564], eax
mov dword [0x462568], eax
mov dword [0x46256c], eax
mov dword [0x462570], eax
mov dword [0x462574], eax
mov dword [0x462578], eax
mov dword [0x46257c], eax
mov dword [0x462580], eax
mov dword [0x462584], eax
mov dword [0x462588], eax
mov dword [0x46258c], eax
mov dword [0x462590], eax
mov dword [0x462594], eax
mov dword [0x462598], eax
mov dword [0x46259c], eax
mov dword [0x4625a0], eax
mov dword [0x4625a4], eax
mov dword [0x4625a8], eax
mov dword [0x4625ac], eax
mov dword [0x4625b0], eax
mov dword [0x4625b4], eax
mov dword [0x4625b8], eax
mov dword [0x4625bc], eax
mov dword [0x4625c0], eax
mov dword [0x4625c4], eax
mov dword [0x4625c8], eax
mov dword [0x4625cc], eax
mov dword [0x4625d0], eax
mov dword [0x4625d4], eax
jmp 0x426116
mov eax, dword [0x4501dc]
inc dword [0x16a68ac]
mov edx, esi
sar edx, 3
mov edi, dword [edx + eax]
mov ecx, esi
and ecx, 7
sar edi, cl
and edi, 0x1f
add esi, 5
mov dword [0x4502ac], esi
js 0x425ec3
call fcn.00425460
mov esi, dword [0x4502ac]
mov eax, dword [0x4501dc]
add edi, 0x101
mov edx, esi
mov dword [esp + 0x1c], edi
sar edx, 3
mov edi, dword [edx + eax]
mov ecx, esi
and ecx, 7
sar edi, cl
and edi, 0x1f
add esi, 5
mov dword [0x4502ac], esi
js 0x425efa
call fcn.00425460
mov esi, dword [0x4502ac]
mov eax, dword [0x4501dc]
inc edi
mov edx, esi
mov dword [esp + 0x14], edi
sar edx, 3
mov edi, dword [edx + eax]
mov ecx, esi
and ecx, 7
sar edi, cl
and edi, 0xf
add esi, 4
mov dword [0x4502ac], esi
js 0x425f2c
call fcn.00425460
mov esi, dword [0x4502ac]
lea ebp, [edi + 4]
xor edx, edx
xor ebx, ebx
cmp ebp, edx
jle 0x425f88
jmp 0x425f40
mov edi, dword [0x4501dc]
mov eax, esi
sar eax, 3
mov edi, dword [eax + edi]
mov ecx, esi
and ecx, 7
sar edi, cl
and edi, 7
add esi, 3
mov dword [0x4502ac], esi
js 0x425f70
call fcn.00425460
mov esi, dword [0x4502ac]
xor edx, edx
mov ecx, dword [ebx*4 + 0x446550]
inc ebx
mov dword [ecx*4 + 0x450190], edi
cmp ebx, ebp
jl 0x425f40
cmp ebx, 0x13
jge 0x425fa3
lea eax, [ebx*4 + 0x446550]
nop
mov ecx, dword [eax]
add eax, 4
mov dword [ecx*4 + 0x450190], edx
cmp eax, 0x44659c
jl 0x425f90
mov eax, 0x1e
dec eax
mov dword [esp + eax*4 + 0x28], edx
jne 0x425fa8
mov eax, 0x4501d8
mov ecx, dword [eax]
inc dword [esp + ecx*4 + 0x24]
lea ecx, [esp + ecx*4 + 0x24]
sub eax, 4
cmp eax, 0x450190
jge 0x425fb4
mov dword [0x4502b0], edx
mov dword [esp + 0x24], edx
xor eax, eax
jmp 0x425fe0
mov ecx, dword [esp + eax + 0x24]
add ecx, dword [eax + 0x4502b0]
add eax, 4
mov dword [eax + 0x4502b0], ecx
cmp eax, 0x7c
jl 0x425fe0
xor eax, eax
lea ebx, [ebx]
mov ecx, dword [eax*4 + 0x450190]
cmp ecx, edx
je 0x426023
mov edx, dword [ecx*4 + 0x4502b0]
mov dword [edx*4 + 0x4625d8], eax
inc edx
mov dword [ecx*4 + 0x4502b0], edx
xor edx, edx
inc eax
cmp eax, 0x13
jl 0x426000
mov ebp, dword [esp + 0x14]
add ebp, dword [esp + 0x1c]
xor ebx, ebx
cmp ebp, edx
jle 0x426118
jmp 0x426040
push 0x4502b0
push 0x4625d8
call fcn.00425550
add esp, 8
cmp eax, 0x10
jge 0x426064
mov dword [ebx*4 + 0x4620d8], eax
inc ebx
jmp 0x42610e
mov esi, dword [0x4501dc]
jne 0x4260ab
mov eax, dword [0x4502ac]
mov edx, eax
sar edx, 3
mov esi, dword [edx + esi]
mov ecx, eax
and ecx, 7
sar esi, cl
and esi, 3
add eax, 2
mov dword [0x4502ac], eax
js 0x426092
call fcn.00425460
lea eax, [esi + 3]
test eax, eax
je 0x42610e
lea edi, [ebx*4 + 0x4620d8]
lea esi, [edi - 4]
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
add ebx, eax
jmp 0x42610e
cmp eax, 0x11
mov eax, dword [0x4502ac]
mov edx, eax
mov ecx, eax
jne 0x4260db
sar edx, 3
mov esi, dword [edx + esi]
and ecx, 7
sar esi, cl
and esi, 7
add eax, 3
mov dword [0x4502ac], eax
js 0x4260d6
call fcn.00425460
lea edx, [esi + 3]
jmp 0x4260fb
sar edx, 3
mov esi, dword [edx + esi]
and ecx, 7
sar esi, cl
and esi, 0x7f
add eax, 7
mov dword [0x4502ac], eax
js 0x4260f8
call fcn.00425460
lea edx, [esi + 0xb]
test edx, edx
je 0x42610e
lea edi, [ebx*4 + 0x4620d8]
xor eax, eax
mov ecx, edx
rep stosd dword es:[edi], eax
add ebx, edx
cmp ebx, ebp
jl 0x426040
xor edx, edx
mov eax, 0x1e
lea ecx, [ecx]
dec eax
mov dword [esp + eax*4 + 0x28], edx
jne 0x426120
mov esi, dword [esp + 0x1c]
lea ecx, [esi - 1]
cmp ecx, edx
jl 0x426144
mov eax, dword [ecx*4 + 0x4620d8]
inc dword [esp + eax*4 + 0x24]
dec ecx
lea eax, [esp + eax*4 + 0x24]
jns 0x426132
mov dword [0x4502b0], edx
mov dword [esp + 0x24], edx
xor eax, eax
mov ecx, dword [esp + eax + 0x24]
add ecx, dword [eax + 0x4502b0]
add eax, 4
mov dword [eax + 0x4502b0], ecx
cmp eax, 0x7c
jl 0x426150
xor eax, eax
cmp esi, edx
jle 0x42619a
mov edi, edi
mov ecx, dword [eax*4 + 0x4620d8]
cmp ecx, edx
je 0x426193
mov edx, dword [ecx*4 + 0x4502b0]
mov dword [edx*4 + 0x4625d8], eax
inc edx
mov dword [ecx*4 + 0x4502b0], edx
xor edx, edx
inc eax
cmp eax, dword [esp + 0x1c]
jl 0x426170
push 9
push 0x450358
push 0x450560
push 0x4625d8
mov ecx, 0x4502b0
call fcn.00425380
mov edx, dword [esp + 0x24]
push 0x4501e0
push edx
mov edx, dword [esp + 0x34]
lea edx, [edx*4 + 0x4620d8]
mov esi, 0x460f40
call fcn.00424c90
push 6
push 0x450260
push 0x461fc8
push 0x4501e0
mov ecx, esi
call fcn.00425380
mov esi, dword [0x4502ac]
add esp, 0x28
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
lea ecx, [ecx]
cmp ebp, edi
jl 0x42624d
lea eax, [edi - 0x4000]
and eax, 0x7fff
add eax, 0x448180
push 0x4000
push eax
call fcn.00424da0
mov ecx, dword [0x45055c]
add edi, 0x4000
add esp, 8
mov dword [esp + 0x18], edi
cmp ecx, dword [0x4620c8]
jl 0x426247
cmp dword [0x450348], 2
jl 0x42644a
mov esi, dword [0x4502ac]
mov eax, dword [0x4501dc]
mov edx, esi
sar edx, 3
mov eax, dword [edx + eax]
mov ecx, esi
and ecx, 7
sar eax, cl
and eax, 0x1ff
mov cl, byte [eax + 0x450358]
test cl, cl
je 0x42628b
mov ebx, dword [eax*4 + 0x450560]
movzx ecx, cl
add esi, ecx
mov dword [0x4502ac], esi
js 0x4262a5
call fcn.00425460
jmp 0x42629f
push 0x4502b0
push 0x4625d8
call fcn.00425550
add esp, 8
mov ebx, eax
mov esi, dword [0x4502ac]
cmp ebx, 0x100
jge 0x4262c5
mov edx, ebp
and edx, 0x7fff
inc ebp
mov byte [edx + 0x448180], bl
mov dword [esp + 0x10], ebp
jmp 0x426200
je 0x4263db
mov edi, dword [0x4501dc]
mov eax, dword [ebx*8 + 0x460648]
mov edx, esi
sar edx, 3
mov ebp, dword [edx + edi]
mov ecx, esi
and ecx, 7
sar ebp, cl
and ebp, dword [eax*4 + 0x440be0]
add esi, eax
mov dword [0x4502ac], esi
js 0x426303
call fcn.00425460
mov esi, dword [0x4502ac]
mov edx, dword [0x4501dc]
mov edi, dword [ebx*8 + 0x46064c]
mov eax, esi
sar eax, 3
mov eax, dword [eax + edx]
mov ecx, esi
and ecx, 7
sar eax, cl
add edi, ebp
and eax, 0x3f
mov cl, byte [eax + 0x450260]
test cl, cl
je 0x426349
mov ebp, dword [eax*4 + 0x461fc8]
movzx eax, cl
add esi, eax
mov dword [0x4502ac], esi
js 0x426363
call fcn.00425460
jmp 0x42635d
push 0x460f40
push 0x4501e0
call fcn.00425550
add esp, 8
mov ebp, eax
mov esi, dword [0x4502ac]
mov ebx, dword [0x4501dc]
mov eax, dword [ebp*8 + 0x460d60]
mov edx, esi
sar edx, 3
mov ebx, dword [edx + ebx]
mov ecx, esi
and ecx, 7
sar ebx, cl
and ebx, dword [eax*4 + 0x440be0]
add esi, eax
mov dword [0x4502ac], esi
js 0x42639b
call fcn.00425460
mov esi, dword [0x4502ac]
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp*8 + 0x460d64]
add edx, ebx
mov eax, ecx
add edi, ecx
sub eax, edx
mov edi, edi
mov edx, eax
and edx, 0x7fff
mov dl, byte [edx + 0x448180]
mov ebx, ecx
and ebx, 0x7fff
inc ecx
inc eax
mov byte [ebx + 0x448180], dl
cmp ecx, edi
jl 0x4263b0
mov dword [esp + 0x10], ecx
jmp 0x4261f5
mov ebp, dword [esp + 0x18]
cmp dword [esp + 0x20], 0
je 0x425b52
mov esi, dword [esp + 0x10]
sub ebp, 0x4000
mov eax, ebp
xor eax, esi
test eax, 0x8000
jne 0x426419
sub esi, ebp
and ebp, 0x7fff
push esi
add ebp, 0x448180
push ebp
call fcn.00424da0
add esp, 8
jmp 0x42644a
mov ecx, ebp
neg ecx
and ecx, 0x7fff
and ebp, 0x7fff
push ecx
add ebp, 0x448180
push ebp
call fcn.00424da0
and esi, 0x7fff
push esi
push 0x448180
call fcn.00424da0
add esp, 0x10
cmp byte [0x16a68b0], 4
jne 0x42645d
mov dword [0x16a68a0], 0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x90
ret