Function at 0x419a00
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x2c
mov ebx, dword [esp + 0x40]
mov edx, dword [ebx + 0x14b08]
test edx, edx
mov ecx, dword [ebx + 0x10]
je 0x419a26
mov eax, ecx
shl eax, 6
mov eax, dword [eax + edx*4 + 0x46a340]
jmp 0x419a29
mov eax, dword [ebx + 0x78]
imul eax, eax, 0x11940
inc ecx
imul eax, ecx
cdq
mov ecx, dword [ebx + 0x40]
idiv ecx
add eax, dword [ebx + 0x14b10]
mov esi, dword [ebx + 0x5348]
cmp esi, 8
mov dword [esp + 0x14], eax
lea ebp, [eax*8]
jl 0x41a00f
mov dword [esp + 0x20], esi
mov edi, 8
mov dword [esp + 0x10], ebp
mov edx, dword [ebx + 0x12c]
test edx, edx
jne 0x419b0d
mov eax, dword [ebx + 0xcba4]
mov edx, dword [ebx + 0x128]
mov dword [ebx + 0x12c], 8
lea ebp, [eax + eax*2]
shl ebp, 4
lea ecx, [edx + 1]
mov dword [ebx + 0x128], ecx
lea eax, [ebp + ebx + 0x6cb0]
mov esi, dword [eax + 0x2ef0]
cmp esi, dword [ebx + 0x124]
jne 0x419afd
mov ecx, dword [ebx + 0x11c]
add eax, 0x2ef8
push dword [ebx + 0x18]
push eax
lea edx, [ecx + edx + 1]
push edx
call fcn.0040c050
add esp, 0xc
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x124]
mov esi, dword [ebx + 0xcba4]
inc esi
mov ecx, dword [ebx + 0x128]
lea ebp, [eax + edx*8]
and esi, 0xff
add ecx, edx
mov dword [ebx + 0x128], ecx
mov dword [ebx + 0x124], ebp
mov dword [ebx + 0xcba4], esi
mov eax, dword [ebx + 0x11c]
mov byte [ecx + eax], 0
mov edx, dword [ebx + 0x12c]
cmp edx, edi
mov ebp, edx
mov eax, dword [ebx + 0x128]
jl 0x419b1b
mov ebp, edi
sub edi, ebp
sub edx, ebp
mov dword [esp + 8], eax
mov ecx, edi
mov eax, 0x4c
mov dword [ebx + 0x12c], edx
mov esi, dword [ebx + 0x11c]
shr eax, cl
mov ecx, edx
mov edx, dword [esp + 8]
shl eax, cl
or byte [edx + esi], al
add ebp, dword [ebx + 0x124]
mov dword [ebx + 0x124], ebp
test edi, edi
jg 0x419a66
mov esi, dword [esp + 0x20]
add esi, 0xfffffff8
mov dword [esp + 8], ebp
cmp esi, 8
mov ebp, dword [esp + 0x10]
jl 0x41a00f
mov dword [esp + 0x20], esi
mov edi, 8
mov dword [esp + 0x10], ebp
mov eax, dword [esp + 8]
mov ebp, dword [ebx + 0x12c]
test ebp, ebp
jne 0x419c23
mov edx, dword [ebx + 0xcba4]
mov ecx, dword [ebx + 0x128]
mov dword [ebx + 0x12c], 8
lea esi, [edx + edx*2]
shl esi, 4
lea ebp, [ecx + 1]
mov dword [ebx + 0x128], ebp
lea edx, [esi + ebx + 0x6cb0]
cmp eax, dword [edx + 0x2ef0]
jne 0x419c12
mov eax, dword [ebx + 0x11c]
add edx, 0x2ef8
push dword [ebx + 0x18]
push edx
lea ecx, [eax + ecx + 1]
push ecx
call fcn.0040c050
add esp, 0xc
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x124]
mov esi, dword [ebx + 0xcba4]
inc esi
mov ebp, dword [ebx + 0x128]
lea ecx, [eax + edx*8]
and esi, 0xff
add ebp, edx
mov dword [ebx + 0x128], ebp
mov dword [ebx + 0x124], ecx
mov dword [ebx + 0xcba4], esi
mov eax, dword [ebx + 0x11c]
mov byte [ebp + eax], 0
mov ebp, dword [ebx + 0x12c]
cmp ebp, edi
mov eax, ebp
mov edx, dword [ebx + 0x128]
jl 0x419c31
mov eax, edi
sub edi, eax
sub ebp, eax
mov dword [esp + 0xc], edx
mov ecx, edi
mov edx, 0x41
mov dword [ebx + 0x12c], ebp
mov esi, dword [ebx + 0x11c]
shr edx, cl
mov ecx, ebp
mov ebp, dword [esp + 0xc]
shl edx, cl
or byte [ebp + esi], dl
add eax, dword [ebx + 0x124]
mov dword [ebx + 0x124], eax
test edi, edi
jg 0x419b80
mov esi, dword [esp + 0x20]
add esi, 0xfffffff8
mov ebp, dword [esp + 0x10]
cmp esi, 8
mov dword [esp + 8], eax
jl 0x41a00f
mov dword [esp + 0x20], esi
mov edi, 8
mov dword [esp + 0x10], ebp
mov ebp, dword [ebx + 0x12c]
test ebp, ebp
jne 0x419d36
mov edx, dword [ebx + 0xcba4]
mov ecx, dword [ebx + 0x128]
mov dword [ebx + 0x12c], 8
lea esi, [edx + edx*2]
shl esi, 4
lea ebp, [ecx + 1]
mov dword [ebx + 0x128], ebp
lea edx, [esi + ebx + 0x6cb0]
cmp eax, dword [edx + 0x2ef0]
jne 0x419d25
mov eax, dword [ebx + 0x11c]
add edx, 0x2ef8
push dword [ebx + 0x18]
push edx
lea ecx, [eax + ecx + 1]
push ecx
call fcn.0040c050
add esp, 0xc
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x124]
mov esi, dword [ebx + 0xcba4]
inc esi
mov ebp, dword [ebx + 0x128]
lea ecx, [eax + edx*8]
and esi, 0xff
add ebp, edx
mov dword [ebx + 0x128], ebp
mov dword [ebx + 0x124], ecx
mov dword [ebx + 0xcba4], esi
mov eax, dword [ebx + 0x11c]
mov byte [ebp + eax], 0
mov ebp, dword [ebx + 0x12c]
cmp ebp, edi
mov eax, ebp
mov edx, dword [ebx + 0x128]
jl 0x419d44
mov eax, edi
sub edi, eax
sub ebp, eax
mov dword [esp + 0xc], edx
mov ecx, edi
mov edx, 0x4d
mov dword [ebx + 0x12c], ebp
mov esi, dword [ebx + 0x11c]
shr edx, cl
mov ecx, ebp
mov ebp, dword [esp + 0xc]
shl edx, cl
or byte [ebp + esi], dl
add eax, dword [ebx + 0x124]
mov dword [ebx + 0x124], eax
test edi, edi
jg 0x419c93
mov esi, dword [esp + 0x20]
add esi, 0xfffffff8
mov ebp, dword [esp + 0x10]
cmp esi, 8
mov dword [esp + 8], eax
jl 0x41a00f
mov dword [esp + 0x20], esi
mov edi, 8
mov dword [esp + 0x10], ebp
mov ebp, dword [ebx + 0x12c]
test ebp, ebp
jne 0x419e49
mov edx, dword [ebx + 0xcba4]
mov ecx, dword [ebx + 0x128]
mov dword [ebx + 0x12c], 8
lea esi, [edx + edx*2]
shl esi, 4
lea ebp, [ecx + 1]
mov dword [ebx + 0x128], ebp
lea edx, [esi + ebx + 0x6cb0]
cmp eax, dword [edx + 0x2ef0]
jne 0x419e38
mov eax, dword [ebx + 0x11c]
add edx, 0x2ef8
push dword [ebx + 0x18]
push edx
lea ecx, [eax + ecx + 1]
push ecx
call fcn.0040c050
add esp, 0xc
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x124]
mov esi, dword [ebx + 0xcba4]
inc esi
mov ebp, dword [ebx + 0x128]
lea ecx, [eax + edx*8]
and esi, 0xff
add ebp, edx
mov dword [ebx + 0x128], ebp
mov dword [ebx + 0x124], ecx
mov dword [ebx + 0xcba4], esi
mov eax, dword [ebx + 0x11c]
mov byte [ebp + eax], 0
mov ebp, dword [ebx + 0x12c]
cmp ebp, edi
mov eax, ebp
mov edx, dword [ebx + 0x128]
jl 0x419e57
mov eax, edi
sub edi, eax
sub ebp, eax
mov dword [esp + 8], edx
mov ecx, edi
mov edx, 0x45
mov dword [ebx + 0x12c], ebp
mov esi, dword [ebx + 0x11c]
shr edx, cl
mov ecx, ebp
mov ebp, dword [esp + 8]
shl edx, cl
or byte [ebp + esi], dl
add eax, dword [ebx + 0x124]
mov dword [ebx + 0x124], eax
test edi, edi
jg 0x419da6
mov esi, dword [esp + 0x20]
add esi, 0xfffffff8
mov ebp, dword [esp + 0x10]
cmp esi, 0x20
jl 0x41a00f
call fcn.004177c0
mov ecx, eax
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x419ec6
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x419eb1
dec eax
test eax, eax
jle 0x41a017
mov dword [esp + 0x10], ebp
xor edi, edi
movsx eax, byte [edi + ecx]
add esi, 0xfffffff8
mov dword [esp + 0x18], eax
mov ebp, 8
mov dword [esp + 0xc], edi
mov dword [esp + 8], ecx
mov dword [esp + 0x20], esi
mov edx, dword [ebx + 0x12c]
test edx, edx
jne 0x419f97
mov eax, dword [ebx + 0xcba4]
mov edx, dword [ebx + 0x128]
mov dword [ebx + 0x12c], 8
lea esi, [eax + eax*2]
shl esi, 4
lea ecx, [edx + 1]
mov dword [ebx + 0x128], ecx
lea eax, [esi + ebx + 0x6cb0]
mov edi, dword [eax + 0x2ef0]
cmp edi, dword [ebx + 0x124]
jne 0x419f87
mov ecx, dword [ebx + 0x11c]
add eax, 0x2ef8
push dword [ebx + 0x18]
push eax
lea edx, [ecx + edx + 1]
push edx
call fcn.0040c050
add esp, 0xc
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x124]
mov edi, dword [ebx + 0xcba4]
inc edi
mov ecx, dword [ebx + 0x128]
lea esi, [eax + edx*8]
and edi, 0xff
add ecx, edx
mov dword [ebx + 0x128], ecx
mov dword [ebx + 0x124], esi
mov dword [ebx + 0xcba4], edi
mov eax, dword [ebx + 0x11c]
mov byte [ecx + eax], 0
mov edx, dword [ebx + 0x12c]
cmp edx, ebp
mov esi, edx
mov eax, dword [ebx + 0x128]
jl 0x419fa5
mov esi, ebp
sub ebp, esi
sub edx, esi
mov dword [esp + 0x1c], eax
mov ecx, ebp
mov dword [ebx + 0x12c], edx
mov eax, dword [esp + 0x18]
mov edi, dword [ebx + 0x11c]
sar eax, cl
mov ecx, edx
mov edx, dword [esp + 0x1c]
shl eax, cl
or byte [edx + edi], al
add dword [ebx + 0x124], esi
test ebp, ebp
jg 0x419ef0
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 8]
inc edi
mov esi, dword [esp + 0x20]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x419ffe
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x419fe9
dec eax
cmp edi, eax
jge 0x41a00b
cmp esi, 8
jge 0x419ed4
mov ebp, dword [esp + 0x10]
test esi, esi
jle 0x41a145
mov eax, dword [ebx + 0xcba8]
mov dword [esp + 8], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 8], eax
mov ebp, 1
mov dword [esp + 0x20], esi
mov edx, dword [ebx + 0x12c]
test edx, edx
jne 0x41a0d9
mov eax, dword [ebx + 0xcba4]
mov edx, dword [ebx + 0x128]
mov dword [ebx + 0x12c], 8
lea esi, [eax + eax*2]
shl esi, 4
lea ecx, [edx + 1]
mov dword [ebx + 0x128], ecx
lea eax, [esi + ebx + 0x6cb0]
mov edi, dword [eax + 0x2ef0]
cmp edi, dword [ebx + 0x124]
jne 0x41a0c9
mov ecx, dword [ebx + 0x11c]
add eax, 0x2ef8
push dword [ebx + 0x18]
push eax
lea edx, [ecx + edx + 1]
push edx
call fcn.0040c050
add esp, 0xc
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x124]
mov edi, dword [ebx + 0xcba4]
inc edi
mov ecx, dword [ebx + 0x128]
lea esi, [eax + edx*8]
and edi, 0xff
add ecx, edx
mov dword [ebx + 0x128], ecx
mov dword [ebx + 0x124], esi
mov dword [ebx + 0xcba4], edi
mov eax, dword [ebx + 0x11c]
mov byte [ecx + eax], 0
mov edx, dword [ebx + 0x12c]
cmp edx, ebp
mov esi, edx
mov eax, dword [ebx + 0x128]
jl 0x41a0e7
mov esi, ebp
sub ebp, esi
sub edx, esi
mov dword [esp + 0xc], eax
mov ecx, ebp
mov dword [ebx + 0x12c], edx
mov eax, dword [esp + 8]
mov edi, dword [ebx + 0x11c]
sar eax, cl
mov ecx, edx
mov edx, dword [esp + 0xc]
shl eax, cl
or byte [edx + edi], al
add dword [ebx + 0x124], esi
test ebp, ebp
jg 0x41a032
mov esi, dword [esp + 0x20]
xor eax, eax
dec esi
cmp dword [ebx + 0x90], 0
sete al
xor eax, dword [ebx + 0xcba8]
mov dword [ebx + 0xcba8], eax
test esi, esi
jg 0x41a025
mov ebp, dword [esp + 0x10]
mov eax, ebx
mov edx, ebp
call fcn.0041aa20
mov edx, dword [ebx + 0x18]
mov eax, ebx
mov dword [esp + 0x18], edx
call fcn.0041bf10
mov dword [esp + 0x1c], eax
mov esi, dword [ebx + 0x534c]
cmp esi, 8
jl 0x41a716
mov dword [esp + 0x28], esi
mov edi, 8
mov dword [esp + 0x10], ebp
mov ebp, dword [ebx + 0x12c]
test ebp, ebp
jne 0x41a223
mov eax, dword [ebx + 0xcba4]
mov edx, dword [ebx + 0x128]
mov dword [ebx + 0x12c], 8
lea ebp, [eax + eax*2]
shl ebp, 4
lea ecx, [edx + 1]
mov dword [ebx + 0x128], ecx
lea eax, [ebp + ebx + 0x6cb0]
mov esi, dword [eax + 0x2ef0]
cmp esi, dword [ebx + 0x124]
jne 0x41a213
mov ecx, dword [ebx + 0x11c]
add eax, 0x2ef8
push dword [ebx + 0x18]
push eax
lea edx, [ecx + edx + 1]
push edx
call fcn.0040c050
add esp, 0xc
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x124]
mov esi, dword [ebx + 0xcba4]
inc esi
mov ecx, dword [ebx + 0x128]
lea ebp, [eax + edx*8]
and esi, 0xff
add ecx, edx
mov dword [ebx + 0x128], ecx
mov dword [ebx + 0x124], ebp
mov dword [ebx + 0xcba4], esi
mov eax, dword [ebx + 0x11c]
mov byte [ecx + eax], 0
mov ebp, dword [ebx + 0x12c]
cmp ebp, edi
mov eax, ebp
mov edx, dword [ebx + 0x128]
jl 0x41a231
mov eax, edi
sub edi, eax
sub ebp, eax
mov dword [esp + 8], edx
mov ecx, edi
mov edx, 0x4c
mov dword [ebx + 0x12c], ebp
mov esi, dword [ebx + 0x11c]
shr edx, cl
mov ecx, ebp
mov ebp, dword [esp + 8]
shl edx, cl
or byte [ebp + esi], dl
add eax, dword [ebx + 0x124]
mov dword [ebx + 0x124], eax
test edi, edi
jg 0x41a17c
mov esi, dword [esp + 0x28]
add esi, 0xfffffff8
mov ebp, dword [esp + 0x10]
cmp esi, 8
jl 0x41a716
mov dword [esp + 0x28], esi
mov edi, 8
mov dword [esp + 0x10], ebp
mov ebp, dword [ebx + 0x12c]
test ebp, ebp
jne 0x41a332
mov edx, dword [ebx + 0xcba4]
mov ecx, dword [ebx + 0x128]
mov dword [ebx + 0x12c], 8
lea esi, [edx + edx*2]
shl esi, 4
lea ebp, [ecx + 1]
mov dword [ebx + 0x128], ebp
lea edx, [esi + ebx + 0x6cb0]
cmp eax, dword [edx + 0x2ef0]
jne 0x41a321
mov eax, dword [ebx + 0x11c]
add edx, 0x2ef8
push dword [ebx + 0x18]
push edx
lea ecx, [eax + ecx + 1]
push ecx
call fcn.0040c050
add esp, 0xc
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x124]
mov esi, dword [ebx + 0xcba4]
inc esi
mov ebp, dword [ebx + 0x128]
lea ecx, [eax + edx*8]
and esi, 0xff
add ebp, edx
mov dword [ebx + 0x128], ebp
mov dword [ebx + 0x124], ecx
mov dword [ebx + 0xcba4], esi
mov eax, dword [ebx + 0x11c]
mov byte [ebp + eax], 0
mov ebp, dword [ebx + 0x12c]
cmp ebp, edi
mov eax, ebp
mov edx, dword [ebx + 0x128]
jl 0x41a340
mov eax, edi
sub edi, eax
sub ebp, eax
mov dword [esp + 8], edx
mov ecx, edi
mov edx, 0x41
mov dword [ebx + 0x12c], ebp
mov esi, dword [ebx + 0x11c]
shr edx, cl
mov ecx, ebp
mov ebp, dword [esp + 8]
shl edx, cl
or byte [ebp + esi], dl
add eax, dword [ebx + 0x124]
mov dword [ebx + 0x124], eax
test edi, edi
jg 0x41a28f
mov esi, dword [esp + 0x28]
add esi, 0xfffffff8
mov ebp, dword [esp + 0x10]
cmp esi, 8
jl 0x41a716
mov dword [esp + 0x28], esi
mov edi, 8
mov dword [esp + 0x10], ebp
mov ebp, dword [ebx + 0x12c]
test ebp, ebp
jne 0x41a441
mov edx, dword [ebx + 0xcba4]
mov ecx, dword [ebx + 0x128]
mov dword [ebx + 0x12c], 8
lea esi, [edx + edx*2]
shl esi, 4
lea ebp, [ecx + 1]
mov dword [ebx + 0x128], ebp
lea edx, [esi + ebx + 0x6cb0]
cmp eax, dword [edx + 0x2ef0]
jne 0x41a430
mov eax, dword [ebx + 0x11c]
add edx, 0x2ef8
push dword [ebx + 0x18]
push edx
lea ecx, [eax + ecx + 1]
push ecx
call fcn.0040c050
add esp, 0xc
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x124]
mov esi, dword [ebx + 0xcba4]
inc esi
mov ebp, dword [ebx + 0x128]
lea ecx, [eax + edx*8]
and esi, 0xff
add ebp, edx
mov dword [ebx + 0x128], ebp
mov dword [ebx + 0x124], ecx
mov dword [ebx + 0xcba4], esi
mov eax, dword [ebx + 0x11c]
mov byte [ebp + eax], 0
mov ebp, dword [ebx + 0x12c]
cmp ebp, edi
mov eax, ebp
mov edx, dword [ebx + 0x128]
jl 0x41a44f
mov eax, edi
sub edi, eax
sub ebp, eax
mov dword [esp + 8], edx
mov ecx, edi
mov edx, 0x4d
mov dword [ebx + 0x12c], ebp
mov esi, dword [ebx + 0x11c]
shr edx, cl
mov ecx, ebp
mov ebp, dword [esp + 8]
shl edx, cl
or byte [ebp + esi], dl
add eax, dword [ebx + 0x124]
mov dword [ebx + 0x124], eax
test edi, edi
jg 0x41a39e
mov esi, dword [esp + 0x28]
add esi, 0xfffffff8
mov ebp, dword [esp + 0x10]
cmp esi, 8
jl 0x41a716
mov dword [esp + 0x28], esi
mov edi, 8
mov dword [esp + 0x10], ebp
mov ebp, dword [ebx + 0x12c]
test ebp, ebp
jne 0x41a550
mov edx, dword [ebx + 0xcba4]
mov ecx, dword [ebx + 0x128]
mov dword [ebx + 0x12c], 8
lea esi, [edx + edx*2]
shl esi, 4
lea ebp, [ecx + 1]
mov dword [ebx + 0x128], ebp
lea edx, [esi + ebx + 0x6cb0]
cmp eax, dword [edx + 0x2ef0]
jne 0x41a53f
mov eax, dword [ebx + 0x11c]
add edx, 0x2ef8
push dword [ebx + 0x18]
push edx
lea ecx, [eax + ecx + 1]
push ecx
call fcn.0040c050
add esp, 0xc
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x124]
mov esi, dword [ebx + 0xcba4]
inc esi
mov ebp, dword [ebx + 0x128]
lea ecx, [eax + edx*8]
and esi, 0xff
add ebp, edx
mov dword [ebx + 0x128], ebp
mov dword [ebx + 0x124], ecx
mov dword [ebx + 0xcba4], esi
mov eax, dword [ebx + 0x11c]
mov byte [ebp + eax], 0
mov ebp, dword [ebx + 0x12c]
cmp ebp, edi
mov eax, ebp
mov edx, dword [ebx + 0x128]
jl 0x41a55e
mov eax, edi
sub edi, eax
sub ebp, eax
mov dword [esp + 8], edx
mov ecx, edi
mov edx, 0x45
mov dword [ebx + 0x12c], ebp
mov esi, dword [ebx + 0x11c]
shr edx, cl
mov ecx, ebp
mov ebp, dword [esp + 8]
shl edx, cl
or byte [ebp + esi], dl
add eax, dword [ebx + 0x124]
mov dword [ebx + 0x124], eax
test edi, edi
jg 0x41a4ad
mov esi, dword [esp + 0x28]
add esi, 0xfffffff8
mov ebp, dword [esp + 0x10]
cmp esi, 0x20
jl 0x41a716
call fcn.004177c0
mov dword [esp + 8], eax
mov ecx, eax
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x41a5d1
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x41a5bc
dec eax
test eax, eax
jle 0x41a71e
mov dword [esp + 0x10], ebp
xor edi, edi
movsx eax, byte [edi + ecx]
add esi, 0xfffffff8
mov dword [esp + 0x20], eax
mov ebp, 8
mov dword [esp + 0xc], edi
mov dword [esp + 0x28], esi
mov edx, dword [ebx + 0x12c]
test edx, edx
jne 0x41a69e
mov eax, dword [ebx + 0xcba4]
mov edx, dword [ebx + 0x128]
mov dword [ebx + 0x12c], 8
lea esi, [eax + eax*2]
shl esi, 4
lea ecx, [edx + 1]
mov dword [ebx + 0x128], ecx
lea eax, [esi + ebx + 0x6cb0]
mov edi, dword [eax + 0x2ef0]
cmp edi, dword [ebx + 0x124]
jne 0x41a68e
mov ecx, dword [ebx + 0x11c]
add eax, 0x2ef8
push dword [ebx + 0x18]
push eax
lea edx, [ecx + edx + 1]
push edx
call fcn.0040c050
add esp, 0xc
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x124]
mov edi, dword [ebx + 0xcba4]
inc edi
mov ecx, dword [ebx + 0x128]
lea esi, [eax + edx*8]
and edi, 0xff
add ecx, edx
mov dword [ebx + 0x128], ecx
mov dword [ebx + 0x124], esi
mov dword [ebx + 0xcba4], edi
mov eax, dword [ebx + 0x11c]
mov byte [ecx + eax], 0
mov edx, dword [ebx + 0x12c]
cmp edx, ebp
mov esi, edx
mov eax, dword [ebx + 0x128]
jl 0x41a6ac
mov esi, ebp
sub ebp, esi
sub edx, esi
mov dword [esp + 0x24], eax
mov ecx, ebp
mov dword [ebx + 0x12c], edx
mov eax, dword [esp + 0x20]
mov edi, dword [ebx + 0x11c]
sar eax, cl
mov ecx, edx
mov edx, dword [esp + 0x24]
shl eax, cl
or byte [edx + edi], al
add dword [ebx + 0x124], esi
test ebp, ebp
jg 0x41a5f7
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 8]
inc edi
mov esi, dword [esp + 0x28]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x41a705
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x41a6f0
dec eax
cmp edi, eax
jge 0x41a712
cmp esi, 8
jge 0x41a5df
mov ebp, dword [esp + 0x10]
test esi, esi
jle 0x41a84c
mov eax, dword [ebx + 0xcba8]
mov dword [esp + 8], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 8], eax
mov ebp, 1
mov dword [esp + 0x28], esi
mov edx, dword [ebx + 0x12c]
test edx, edx
jne 0x41a7e0
mov eax, dword [ebx + 0xcba4]
mov edx, dword [ebx + 0x128]
mov dword [ebx + 0x12c], 8
lea esi, [eax + eax*2]
shl esi, 4
lea ecx, [edx + 1]
mov dword [ebx + 0x128], ecx
lea eax, [esi + ebx + 0x6cb0]
mov edi, dword [eax + 0x2ef0]
cmp edi, dword [ebx + 0x124]
jne 0x41a7d0
mov ecx, dword [ebx + 0x11c]
add eax, 0x2ef8
push dword [ebx + 0x18]
push eax
lea edx, [ecx + edx + 1]
push edx
call fcn.0040c050
add esp, 0xc
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x124]
mov edi, dword [ebx + 0xcba4]
inc edi
mov ecx, dword [ebx + 0x128]
lea esi, [eax + edx*8]
and edi, 0xff
add ecx, edx
mov dword [ebx + 0x128], ecx
mov dword [ebx + 0x124], esi
mov dword [ebx + 0xcba4], edi
mov eax, dword [ebx + 0x11c]
mov byte [ecx + eax], 0
mov edx, dword [ebx + 0x12c]
cmp edx, ebp
mov esi, edx
mov eax, dword [ebx + 0x128]
jl 0x41a7ee
mov esi, ebp
sub ebp, esi
sub edx, esi
mov dword [esp + 0xc], eax
mov ecx, ebp
mov dword [ebx + 0x12c], edx
mov eax, dword [esp + 8]
mov edi, dword [ebx + 0x11c]
sar eax, cl
mov ecx, edx
mov edx, dword [esp + 0xc]
shl eax, cl
or byte [edx + edi], al
add dword [ebx + 0x124], esi
test ebp, ebp
jg 0x41a739
mov esi, dword [esp + 0x28]
xor eax, eax
dec esi
cmp dword [ebx + 0x90], 0
sete al
xor eax, dword [ebx + 0xcba8]
mov dword [ebx + 0xcba8], eax
test esi, esi
jg 0x41a72c
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov edi, ebp
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
lea esi, [esi + edx*8]
mov edx, dword [ebx + 0xcba4]
add esi, dword [ebx + 0x534c]
sub edi, esi
sar edi, 2
shr edi, 0x1d
lea ecx, [edi + eax*8]
mov edi, dword [ebx + 0xcba0]
dec edi
sub ecx, esi
cmp edi, 0xffffffff
jne 0x41a887
mov edi, 0xff
sar ecx, 3
lea eax, [edi + edi*2]
shl eax, 4
add dword [ebx + 0x5340], ecx
mov ecx, dword [eax + ebx + 0x9ba0]
sub ecx, dword [ebx + 0x124]
js 0x41a8c0
mov eax, edi
sub eax, edx
cmp edi, edx
jge 0x41a8b4
add eax, 0x101
jmp 0x41a8b5
inc eax
mov edx, dword [ebx + 0x18]
shl edx, 3
imul edx, eax
sub ecx, edx
mov edi, dword [ebx + 0x14b08]
test edi, edi
mov edx, dword [ebx + 0x10]
je 0x41a8db
mov eax, edx
shl eax, 6
mov eax, dword [eax + edi*4 + 0x46a340]
jmp 0x41a8de
mov eax, dword [ebx + 0x78]
imul eax, eax, 0x11940
inc edx
imul eax, edx
cdq
mov edi, dword [ebx + 0x40]
idiv edi
add eax, dword [ebx + 0x14b10]
lea edi, [ecx + eax*8]
test edi, edi
jl 0x41aa0d
mov ecx, dword [ebx + 0xcbac]
cmp edi, ecx
jne 0x41a9f4
mov edi, dword [ebx + 0x5340]
shl edi, 3
cmp ecx, edi
jne 0x41a957
cmp dword [ebx + 0x124], 0x3b9aca00
jle 0x41a94d
xor eax, eax
mov edx, dword [ebx + 0x124]
lea ecx, [eax + eax*2]
shl ecx, 4
inc eax
sub dword [ebx + ecx + 0x9ba0], edx
cmp eax, 0x100
jl 0x41a928
mov dword [ebx + 0x124], 0
xor eax, eax
add esp, 0x2c
pop ebp
pop ebx
pop edi
pop esi
ret
mov dword [esp + 0x14], edi
mov edi, dword [ebx + 0x5348]
mov eax, dword [ebx + 0x18]
shl eax, 3
mov dword [esp + 8], edi
mov edi, esi
mov edx, dword [ebx + 0x534c]
sub edi, eax
mov dword [esp + 0x10], edx
sub edi, edx
mov edx, esi
mov dword [esp + 0xc], edi
and edx, 0x80000007
mov edi, dword [esp + 0x14]
jge 0x41a994
sub edx, 1
or edx, 0xfffffff8
inc edx
push ebp
push edx
push esi
push dword [esp + 0x18]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x28]
push ecx
push edi
push 0x46a820
push ebx
call fcn.00418fd0
push 0x46a940
push ebx
call fcn.00418fd0
push 0x46a980
push ebx
call fcn.00418fd0
push 0x46a9e0
push ebx
call fcn.00418fd0
push 0x46aa04
push ebx
call fcn.00418fd0
add esp, 0x4c
mov eax, dword [ebx + 0x5340]
shl eax, 3
mov dword [ebx + 0xcbac], eax
jmp 0x41a91a
push 0x46a7d0
push ebx
call fcn.00418fd0
add esp, 8
mov ecx, dword [ebx + 0xcbac]
jmp 0x41a90d
push 0x46a7ac
push ebx
call fcn.00418fd0
add esp, 8
jmp 0x41a8ff